数据结构课件PPT资料.ppt
- 文档编号:14685405
- 上传时间:2022-10-23
- 格式:PPT
- 页数:97
- 大小:1.24MB
数据结构课件PPT资料.ppt
《数据结构课件PPT资料.ppt》由会员分享,可在线阅读,更多相关《数据结构课件PPT资料.ppt(97页珍藏版)》请在冰豆网上搜索。
main()floatr,s;
intchoice;
menu();
scanf(“%d”,数据结构,程序=数据结构+算法,第一章绪论,1.1什么是数据结构一、数据结构课程的研究内容用计算机解决一个具体问题:
抽象适当的数学模型设计解决该数学模型的算法编写程序、测试、调整得到最终答案?
电话号码查询问题数据结构是一门研究非数值计算的程序设计问题中计算的操作对象以及它们之间的关系和操作等等的学科。
对相关的各种信息如何表示、组织和存储?
第一章绪论,二、发展:
1968年,数据结构作为一门独立的课程在国外设立。
数据结构图论、表、树、网络、集合代数论、格、关系、文件管理。
程序=数据结构+算法数据结构是计算机科学中一门综合性的专业基础课,是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。
不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。
第一章绪论,1.2基本概念和术语1、数据(Data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
它是计算机程序加工的“原料”,如:
整数、实数、字符串、图像、声音等。
2、数据元素(DataElement)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
如:
学校学籍管理系统中的学生信息就是一个数据元素。
第一章绪论,3、数据项(DataItem)一个数据元素可由若干个数据项组成,是数据的不可分割的最小单位。
书目信息中的书名、作者名等即为一个数据项;
学生信息中的学号。
4、数据对象(DataObject)是性质相同的数据元素的集合,是数据的一个子集。
整数数据对象集合N=0,+/-1,+/-2,;
学籍管理系统中的学生信息数据库文件。
第一章绪论,5、数据结构(DataStructure)是相互之间存在一种或多种特定关系的数据元素的集合。
结构数据元素不是孤立存在的,它们之间存在某种关系,这种数据元素相互之间的关系称为结构。
Data_Structure=(D,S),元素有限集,关系有限集,例1:
用数据结构表示一周中的七天。
Data_Structure=(D,S),其中,D=S=,Mon,Tue,Wen,Thu,Fri,Sat,Sun,第一章绪论,6、逻辑结构结构定义中的“关系”描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构。
4类基本结构:
集合(沙堆)线性结构(一对一,队列)树形结构(一对多,家族谱)图状结构(多对多,交通图),第一章绪论,7、物理结构/存储结构数据结构在计算机中的表示/映象称为数据的物理结构。
包括数据元素的表示和关系的表示。
位、元素(结点)、数据域。
两种具体存储结构:
(z1=3.0+2.3i),第一章绪论,顺序映象-顺序存储结构特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
非顺序映象-链式存储结构特点是借助指示元素存储地址的指针表示数据元素之间的逻辑关系。
算法的设计取决于选定的数据(逻辑)结构,算法的实现依赖于采用的存储结构。
数据结构课程的内容,数据结构,逻辑结构,存储(物理)结构,数据运算,线性结构,非线性结构,顺序存储结构,链式存储结构,插入运算,删除运算,修改运算,查找运算,排序运算,树形结构,图状结构,8、数据类型(DataType)是一个值的集合和定义在这个值集上的一组操作的总称。
int+,-,*,/,mod等。
9、抽象数据类型(AbstractDataType,ADT)是指一个数学模型以及定义在该模型上的一组操作。
抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算机内部如何表示和实现无关。
第一章绪论,抽象数据类型的形式定义抽象数据类型可用三元组表示(D,S,P)其中,D是数据对象,S是D上的关系对象,P是对D的基本操作。
ADT抽象数据类型名数据对象:
数据对象的定义数据关系:
数据关系的定义基本操作:
基本操作的定义ADT抽象数据类型名,第一章绪论,第一章绪论,1.3抽象数据类型的表示与实现抽象数据类型可通过固有数据类型来表示和实现,即利用处理器中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作。
第一章绪论,1.4算法和算法分析一、算法(Alogrithm)算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
特性:
有穷性;
确定性;
可行性;
输入;
输出。
第一章绪论,二、算法设计的要求正确性;
可读性;
健壮性;
效率与低存储量需求,三、算法效率的度量1、时间复杂度:
算法中基本操作重复执行的次数是问题规模n的某个函数,算法的时间量度记作T(n)=O(f(n)随着问题规模的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐近时间复杂度,简称时间复杂度。
第一章绪论,原操作通常是最深层循环内的语句中的原操作,执行次数和包含它的语句的频度相同。
语句的频度指的是该语句重复执行的次数。
第一章绪论,常量阶O
(1)线性阶O(n)平方阶O(n2)对数阶O(logn)指数阶O(2n)2、算法的存储空间需求以空间复杂度作为算法所需存储空间的量度,记作S(n)=O(f(n)。
第一章绪论,a)for(i=0;
im;
i+)for(j=0;
jn;
j+)bij=0;
O(mn)b)s=0;
for(i=0;
in;
i+)for(j=i;
j+)s+=bij;
O(n2)c)i=1;
while(in)i=2;
O(log2n),线形结构的特点:
在数据元素的非空有限集中1、存在唯一的一个被称做“第一个”的数据元素;
2、存在唯一的一个被称做“最后一个”的数据元素;
3、除第一个之外,集合中的每个数据元素均只有一个前趋;
4、除最后一个外,集合中的每个数据元素均只有一个后继。
第二章线性表,第二章线性表,2.1线性表的类型定义一、线性表线性表是n个数据元素的有限序列。
数据元素可以是一个数字、一个符号,甚至是更复杂的信息。
例如:
(A,B,C,Z);
(Mon,Tues,Wes,Thus,Fri,Sat,Sun)一个数据元素可以由若干个数据项(Item)组成,称为记录(Record)。
含有大量记录的线性表又称文件(File)。
第二章线性表,同一线性表中的元素必定具有相同特性,即属于同一数据对象,且相邻数据元素之间存在序偶关系。
线性表抽象记为:
(a1,a2,ai,ai+1,an)线性表抽象数据类型定义:
ADTList数据对象:
D=ai|aiElemSet,i=1,2,n,n0数据关系:
R1=|ai-1,aiD,i=2,n基本操作,二、特点:
1.线性表的长度是其中数据元素的个数n,n=0时称为空表;
2.非空表中,表中每个数据元素除第一个和最后一个外,有且仅有一个直接前趋和一个直接后继元素。
称ai-1是ai的直接前趋元素,ai+1是ai的直接后继元素;
3.非空表中,每个数据元素在线性表中的位置仅由它们自己的序号决定;
4.线性表的长度可根据需要增长或缩短,即对线性表的数据元素不仅可以进行访问,还可以进行插入或删除等。
第二章线性表,2.2线性表的顺序表示和实现一、线性表的顺序表示1、描述:
用一组地址连续的存储单元依次存储线性表的数据元素。
假设线性表的每个元素需占用k个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置。
则:
LOC(ai+1)=LOC(ai)+kLOC(ai)=LOC(a1)+(i-1)*kLOC(a1)是线性表的第一个数据元素a1的存储位置,称做线性表的起始位置/基地址。
第二章线性表,2、特点:
1)为表中相邻的元素ai和ai+1赋以相邻的存储位置LOC(ai)和LOC(ai+1),即,以元素在计算机内“物理位置相邻”来表示线性表中数据元素之间的逻辑关系;
2)每一个数据元素的存储位置都和线性表的起始位置相差一个和数据元素在线性表中的位序成正比的常数;
3)只要确定了存储线性表的起始位置,线性表中任一数据元素都可以随机存取,即,线性表的顺序存储结构是一种随机存取的存储结构。
第二章线性表,二、线性表的顺序存储实现1、线性表的动态分配顺序存储结构:
TypedefstructElemType*elem;
intlength;
intlistsize;
SqList;
2、顺序表的初始化:
malloc();
第二章线性表,3、线性表的插入:
将(a1,ai-1,ai,an)变成(a1,ai-1,b,ai,an)(n=n+1)数据元素ai-1和ai之间的逻辑关系发生了变化。
在第i(1in)个元素之前插入一个元素时,需将第n至第i(共n-i+1)个元素向后移动一个位置。
第二章线性表,x,第二章线性表,4、线性表的删除:
将(a1,ai-1,ai,ai+1,an)变成(a1,ai-1,ai+1,an)(n=n-1),第二章线性表,第二章线性表,第二章线性表,2.3线性表的链式表示和实现不要求逻辑上相邻的元素在物理位置上相邻一、线性链表1、定义:
n个结点(node-数据域+指针域)链结成一个链表,即为线性表(a1,a2,.an)的链式存储结构。
其中每个结点中只包含一个指针域,称为线性链表单链表。
例:
线性表(ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG),43,13,1,NULL,37,7,19,25,头指针,第二章线性表,第二章线性表,、特点1)单链表可由头指针唯一确定,整个链表的存取必须从头指针开始/非随机存取;
2)最后一个结点的指针为“空”(null);
3)数据元素之间的逻辑关系由结点中的指针指示。
抽象数据类型定义:
TypedefstructLnodeElemTypedata;
structLnode*next;
Lnode,*LinkList;
第二章线性表,3、单链表的查找GetElem_L(LinkListL,inti,ElemType,第二章线性表,4、单链表插入结点ListInsert_L(LinkList,第二章线性表,5、单链表删除结点ListDelete_L(LinkList,第二章线性表,6、两个有序链表的合并MergeList_L(LinkList链接在pc后*/,第二章线性表,二、循环链表表中最后一个结点的指针域指向头结点,整个链表形成一个环。
由此,从表中任一结点出发均可找到表中其它结点。
三、双向链表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件