数据结构总复习ppt课件.ppt
《数据结构总复习ppt课件.ppt》由会员分享,可在线阅读,更多相关《数据结构总复习ppt课件.ppt(147页珍藏版)》请在三一办公上搜索。
1、数 据 结 构,西南民院计算机系,TEL 13618097826Emailliu-li-,题型1 选择题 2 填空题 3 解答题 4 算法题,第一章 绪论,第一章 绪 论,计算机的发展硬件 CPU、内、外存储器等软件:系统软件、应用软件应用 科学计算 数据处理 过程控制等处理数据的能力和种类:数值 字符、字符串 具有多个属性对象 图形 图像 声音,数据结构的研究对象:非数值数据之间的结构关系,如何表示,如何存储,如何处理的问题。本课程讨论的问题:应用中常用的几种数据结构,以及如何存储,如何处理它们。,第一章 绪 论,1 数据:客观对象的符号表示。例如:课程名,地名,书名都是数据2 数据结构:带
2、有结构和操作的数据元素集合 结构:数据元素之间的关系;操作:对数据的加工处理;,第一章 绪 论,第一章 绪 论,第一章 绪 论,6 数据的存储结构:数据结构在计算机内存中的表示。7 顺序存储结构 用一组连续的内存单元存放数据元素,用元素相对的存储位置表示元素之间的结构关系;8 链式存储结构 用任意一组存储单元存储数据元素,对每个数据元素除了保存自身信息外,还保存相关元素的存储位置。数据结构基本操作的实现:基本操作在计算机上的实现(方法),9 数据结构的表示 1 图示表示 2 二元组表示,图示表示:由顶点和边构成的图,其中顶点表示数据,边表示数据之间的结构关系;,第一章 绪 论,二元组表示 用一
3、个二元组(D,S)表示数据结构,其中 D 是数据元素集合,S 是 D 上关系的集合。,D=A,B,C,D,E,F,G,H,I,J S=R R=A,B,第一章 绪 论,第一章 绪 论,10 算法的概念 算法是求解问题的操作序列(或操作步骤)11 时间复杂度T(n)以求解问题的基本操作(原操作)的执行次数作为算法的时间度量 空间复杂度用执行算法所需的辅助空间的大小作为算法所需空间的度量,第一章练习题,1 数据结构:带有结构和操作的数据元素集合。2 常用的数据结构数据结构的表示4 数据的逻辑结构:数据之间的结构关系,是具体关系的抽象。数据结构的基本操作:也叫基本运算:是指对数据结构的加工处理;数据的
4、存储结构:数据结构在计算机内存中的表示数据结构基本操作的实现:基本操作在计算机上的实现(方法)顺序存储结构链式存储结构10 算法的概念 算法是求解问题的操作序列(或操作步骤)。11 时间复杂度T(n)以求解问题的基本操作(原操作)的执行次数作为算法时间的度量,第二章 线性表,常用的数据结构 1)集合 2)线性结构 3)树结构 4)图结构 5)其它复杂结构,第二章线性表,对每种数据结构,主要讨论如下两方面的问题1 数据的逻辑结构,数据结构的基本操作;2 数据的存储结构,数据结构基本操作的实现,第二章线性表,线性数据结构:除第一个元素和最后一个元素之外,其他元素都有且仅有一个直接前趋,有且仅有一个
5、直接后继。,2.1 线性表的概念 一 线性表的逻辑结构在线性表中,除第一个元素和最后一个元素之外,其他元素都有且仅有一个直接前趋,有且仅有一个直接后继。,2.1 线性表的概念,线性表的基本操作1 初始化操作 InitList(&L)2 销毁操作DetroyList(&L)3 置空操作ClearList(&L)4 判空操作ListEmpty(L)5 求表长操作 ListLength(L)6 取元素操作:GetElem(L,i,&e)7 查找操作 LocateElem(L,e,compare()8 插入操作 ListInsert(&L,i,e)9 删除操作 ListDelete(&L,i,&e)1
6、0 遍历操作 ListTraverse(&L,visit(),2.1 线性表的概念,2.2 线性表的顺序存储和实现,一 线性表的顺序存储结构顺序表1 顺序表用一组连续的内存单元依次存放线性表的数据元素。,2 顺序表的类型定义typedef struct ElemType*elem;/线性表存储空间基址 int length;/当前线性表长度 int listsize;/当前分配的存储空间大小SqList;,顺序表图示,设 A=(a1,a2,a3,.an)是一线性表,L是SqList 类型的结构变量,用于存放 A,2.2 线性表的顺序存储和实现,顺序表保存了哪些信息?,2.2 线性表的顺序存储和
7、实现,顺序表保存了哪些信息?*线性表中的数据元素;*线性表中数据元素的顺序关系;*表中元素个数(简化算法)*当前分配的存储空间 顺序表如何保存这些信息?3 顺序表存储特点元素存储在一组连续的内存单元中;通过元素存储顺序元素之的逻辑顺序;,二 顺序表的基本操作算法1 初始化算法 InitList_Sq(SqList&L)2 插入操作算法 ListInsert_Sq(SqList&L,int i,ElemType e)3 删除操作算法 ListDelete_Sq(SqList&L,inti,ElemType&e),2.2 线性表的顺序存储和实现,2.2 线性表的顺序存储和实现,5 顺序表主要操作特
8、点1)可随机存取顺序表的元素(用L.elemi-1或L.elem+(i-1)可直接定位元素的存储地址)2)插入删除操作通过移动元素实现,23 线性表的链式存储结构和实现,线性表的链式存储结构 用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自身信息外,还保存了相关元素的存储位置。,2.3.1 线性链表一 线性链表的概念1 线性链表,用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自身信息外,还保存了直接后继元素的存储位置。,23 线性表的链式存储结构和实现,typedef struct Lnode ElemType data;Struct Lnode*nex
9、t;LNode,*LinkList;,data next,2 线性链表的结点类型定义 及指向结点的指针类型定义,2.3.1 线性链表,2.3.1 线性链表,3 线性链表存储特点1)用一组任意的存储单元存储线性表中的数据元素;2)通过保存直接后继元素的存储位置来表示数据元素之间的逻辑关系;,二 线性链表基本操作算法1 初始化操作算法InitList_L(LinkList&L)2 插入操作算法ListInsert_L(LinkList&L,inti,ElemType e)3 删除操作算法ListInsert_L(LinkList&L,inti,ElemType&e),2.3.1 线性链表,2.3.
10、1 线性链表,5 线性链表操作主要特点1)不能随机存取元素;2)插入、删除操作通过修改结点的指针实现;,循环链表 循环链表的特点是将线性链表的最后一个结点的指针指向链表的第一个结点,2.3.2 循环链表,双向链表,双向链表中,每个结点有两个指针域,一个指向直接后继元素结点,另一个指向直接前趋元素结点。,2.3.3 双向链表,线性表的其他操作的实现1)通过调用基本操作算法2)直接实现,线性表的其他操作的实现,第二章练习题,;,线性表的逻辑结构:在线性表中,除第一个元素和最后一个元素外,其他元素都有且仅有一个直接前趋,有且仅有一个直接后继。顺序表存储特点:1)元素存储在一组连续的内存单元中2)通过
11、元素的存储顺序反映线性表中数据元素之的逻辑顺序;顺序表操作特点:1)可随机存取顺序表的元素;2)顺序表的插入删除操作要通过移动元素实现,第二章练习题,线性链表存储特点1)用任意一组的存储单元存储线性表中的数据元素;2)通过保存直接后继元素的存储位置来表示数据元素之间的逻辑关系;线性链表操作特点1)不能随机存取元素;2)插入、删除操作通过修改结点的指针实现;顺序表的插入、删除操作平均要移动表的一半元素,第二章练习题,顺序表能随机存取元素的原因是:顺序表能通过L.elemi-1或L.elem+(i-1)直接定位元素的存储地址。线性链表不能随机存取元素的原因是:需从线性链表的头指针开始,顺着链指针定
12、位元素的存储地址对于经常要存取元素的应用,线性表应采用顺序存储结构10 对于经常要插入删除元素的应用,线性表应采用链式存储结构,第三章 栈和队列,栈是限定仅能在表尾进行插入删除操作的线性表。,栈的特点后进先出,3.1 栈,一.栈的概念1 栈的定义,3.1 栈,2 栈的基本操作 1)初始化操作InitStack(&S)2)销毁栈操作DestroyStack(&S)3)置空栈操作ClearStack(&S)4)取栈顶元素操作GetTop(S,&e)5)进栈操作Push(&S,e)6)退栈操作Pop(&S,&e)7)判空操作StackEmpty(S),3.1 栈,二 栈的顺序存储和实现1 栈的顺序存
13、储结构 1)用一组连续的内存单元依次存放自栈底到栈顶的数据元素;2)栈顶元素的位置由栈顶指针指示;,typedef structSElemType*base;/栈底指针SElemType*top/栈顶指针int stacksize;/当前分配的栈空间大小/(以sizeof(SElemType)为单位)SqStack;,3.1 栈,2 顺序栈的类型定义,3.1 栈,顺序栈的图示,栈操作算法1)进栈操作算法:在栈顶插入元素 Push(SqStack&S,SElemType e)2)出栈操作算法:在栈顶插入元素 Pop(SqStack&S,SElemType&e)4 栈操作主要特点进栈、出栈操作要修
14、改栈顶指针,3.1 栈,3.1 栈,栈的链式存储和实现 栈的链式存储与线性表的链式存储类似,可用带头结点的线性链表存储。注意:栈顶指针就是带头结点的线性链表的头指针,S,四 栈的应用举例例2 表达式求值算符优先算法:掌握利用操作数栈OPND,运算符栈OPTR,对表达式求值的方法,3.2 栈,第三章练习题,栈是限定仅能在表尾一端进行插入、删除操作的线性表;2 表尾称为栈顶,表头称为栈底;3 栈的具有后进先出的特点;4 栈顶元素的位置由一个栈顶指针指示;5 进栈、出栈操作要修改栈顶指针;6 一个栈的输入序列为a,b,c,则所有可能的出栈序列为:abc,acb,bac,bca,cba,一 队列的概念
15、 队列的定义,队列是限定仅能在表头删除,表尾插入的线性表。,队列的特点先进先出,34 队列,2 队列的基本操作1)初始化操作InitQueue(&Q)2)销毁操作DestroyQueue(&Q)3)置空操作ClearQueue(&Q)4)判空操作QueueEmpty(Q)5)取队头元素操作GetHead(Q,&e)6)入队操作EnQueue(&Q,e)7)出队操作DeQueue(&Q,&e),34 队列,二 循环队列队列的顺序存储和实现循环队列队列的顺序存贮结构(1)在队列的顺序存贮结构中用一组连续存储单元依次存储队列的数据元素(2)队头、队尾元素的位置分别由队头指针和队尾指针指示;(3)将顺
16、序队列设想为首尾相连的环状空间,34 队列,2 循环队列的类型定义,#define MAXSIZE 100/最大队列长度typedef struct QElemType*base;队空间基址 int front;/队头指针 int rear;/队尾指针SqQueue;,34 队列,34 队列,2 队列操作算法入队操作:在队尾插入元素;出队操作:在队头删除元素;,第三章练习题,队列是限定仅能在表尾一端插入,表头一端删除操作的线性表;2 表尾称为队头,表头称为队尾 3 队头、队尾元素的位置分别由队头指针和队尾指针指示;4 队列具有先进先出的特点5 入队操作要修改队尾指针,出队操作要修改队头指针;,
17、第四章 串,4.1 串的基本概念,一、串的概念1 什么是串 串是由零个或多个字符组成的有限序列,一般记作 s=a1,a2,a3,.an,4.1 串的基本概念,2 串的基本操作(了解)串的逻辑结构与线性表一样,都是线性结构。但由于串的应用与线性表不同,串的基本操作与线性表有很大差别。串连接操作 Concat(&T,S1,S2)求子串操作SubString(&Sub,S,pos,len)求子串位置操作Index(S,T,pos)串插入操作 StrInsert(&S,pos,T)串删除操作 StrDelete(&S,pos,len),4.2 串存储和实现,一、串的存储(了解)1 定长顺序存储结构 定
18、长顺序存储结构类似于C语言的字符数组,以一组地址连续的存储单元存放串值字符序列,其类型说明如下:#define MAXSTRLEN 255Typedef unsigned char SStringMAXSTRLEN+1,4.2 串存储和实现,2、堆分配存储堆分配存储类似于线性表的顺序存储结构 堆分配存储的类型说明Typedef struct char*ch;/指向存放串值的存储空间基址 int length;/整型域:存放串长Hstring;,第四章练习题,从逻辑结构上看串是线性数据结构;S=ababcabcac,S1=abc,S2=isastringConcat(Hstring&T,Hstr
19、ing S1,Hstring S2)T=abcisastring 3 请列举两个线性表所没有的串操作:求子串,求子串位置,,第五章 数组和广义表,51 数 组,1 数组的逻辑结构 n 维数组中的每个元素都受n个线性关系的约束,以二维数组为例:二维数组中的每个元素都受两个线性关系的约束,51 数 组,2 数组的基本操作(了解)初始化操作 InitArray(&A,n,bound1,boundn)功能:参数合法,构造数组A,并返回OK;销毁操作 DestroyArray(&A)功能:销毁数组A;3 读元素操作 Value(A,&e,index1,indexn)功能:若指定下标不越界,读指定下标的元
20、素,用e返回,并返回OK;写元素操作 Assign(A,e,index1,indexn)功能:若指定下标不越界,将e赋值给A指定的下标元素,并返回OK;,51 数 组,3 数组的顺序存贮结构(以二维数组为例)两种方式:以行为主序的方式,以列序为主序的方式4 数组元素存储地址的计算,第五章练习题,1 从逻辑结构来看,二维数组中的每个元素都受两个线性关系的约束在行关系中 aij直接前趋是 aij-1,aij直接后继是 aij+1;在列关系中 aij直接前趋是 ai-1j aij直接后继是 ai+1j;二维数组的两种顺序存贮结构为:)以行为主序的方式,)以列序为主序的方式。数组元素存储地址的计算,5
21、2 矩阵的压缩存储,矩阵压缩存储是指为多个值相同的元素分配一个存储空间,对零元素不分配存储空间一 特殊矩阵1 什么是特殊矩阵 值相同元素或者零元素分布有一定规律的矩阵称为特殊矩阵2 特殊矩阵压缩存储 特殊矩阵的压缩存储是根据元素的分布规律,确定元素的存储位置与元素在矩阵中的位置的对应关系;,52 矩阵的压缩存储,二 稀疏矩阵 1 什么是稀疏矩阵 有较多值相同元素或较多零元素,且值相同元素或者零元素分布没有一定规律的矩阵称为稀疏矩阵。2 稀疏矩阵的压缩存储(只讨论有较多零元素矩阵的压缩存储)稀疏矩阵的压缩存储只存非零元,对每一非零元,除了要保存非零元素的值外,还要保存非零元素在矩阵中的位置;,5
22、2 矩阵的压缩存储,3 稀疏矩阵的(非零元)三元组表 A=(1,2,12),(1,3,9),(3,1,-3),(3,6,14),(4,3,24),(5,2,18),(6,1,15),(6,4,-7)4 三元组顺序表 用顺序表存储三元组表,非零元三元组以行为主序存储,第五章练习题,1 矩阵压缩存储是指为多个值相同的元素分配一个存储空间,对零元素不分配存储空间;2 特殊矩阵的压缩存储是根据元素的分布规律,确定元素的存储位置与元素在矩阵中的位置的对应关系;3(含零元的)稀疏矩阵的压缩存储只存非零元,对每一非零元,除了要保存零元素的值外,还要保存零元素在矩阵中的位置;4 给出稀疏矩阵,写出对应的(非零
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习 ppt 课件
链接地址:https://www.31ppt.com/p-2157291.html