数据结构专升本补习课件

上传人:我*** 文档编号:144691334 上传时间:2020-09-13 格式:PPT 页数:63 大小:322KB
返回 下载 相关 举报
数据结构专升本补习课件_第1页
第1页 / 共63页
数据结构专升本补习课件_第2页
第2页 / 共63页
数据结构专升本补习课件_第3页
第3页 / 共63页
数据结构专升本补习课件_第4页
第4页 / 共63页
数据结构专升本补习课件_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《数据结构专升本补习课件》由会员分享,可在线阅读,更多相关《数据结构专升本补习课件(63页珍藏版)》请在金锄头文库上搜索。

1、数据结构专升本补习,主讲:王晓斌,目 录,复习提纲 各章基本要求 习题选解 考题解析,第一部分,复习提纲,第一章 绪 论,一. 基本概念和术语 1. 数据 2. 数据元素 3. 数据对象 4. 数据结构及其形式化描述 DS(,) 5. 四种基本数据结构 6. 数据类型,第一章 绪 论,二. 算法描述 三. 算法的基本特性及“好”算法的特征 四. 简单时间复杂度的分析,第二章 线性表,一. 线性表的逻辑结构及基本操作 二. 顺序存储结构及其特点 CONST maxlen=线性表可能达到的最大长度; TYPE sqlisttp=RECORD elem:ARRAYmaxlen OF elemtp;

2、last:0maxlen END;,第二章 线性表,三. 单链表及其特点 TYPE pointer=nodetype; nodetype=RECORD data:elemtp; next:pointer END; linkisttp=pointer;,第二章 线性表,四. 循环链表、双向链表及其特点 五. 一元多项式的单链表表示 六. 难点 1. 顺序存储结构编写算法时注意事项 2. 单链表的建立 3. 单链表中前驱结点的记录 4. 双向链表中插入结点时的语序,第三章 栈和队列,一. 栈的特点及基本操作 二. 栈的应用(读写递归算法时注意事项) 三. 队列的特点及基本操作 四. 循环队列:队空

3、、队满的判定,第五章 数组和广义表,一. 数组及其操作 二. 数组元素的存放方式及存储地址的计算 三. 广义表的定义、性质及操作,第六章 树和二叉树,一. 基本概念 二. 二叉树的性质 三. 二叉树的存储结构 四. 二叉树的遍历 五. 树、森林和二叉树之间的转换 六. 哈夫曼树的构造,第七章 图,一. 图的基本术语 二. 图的存储结构:邻接矩阵、邻接表 三. 一定存储结构下图的遍历 四. 图的典型应用 1. 最小生成树 2. 拓扑排序 3. 关键路径 4. 最短路径,第九章 查找,一. 基本术语 二. 顺序表查找:顺序、折半、分块 三. 二叉排序树及其构造 四. Hash表的构造,第十章 内部

4、排序,一. 基本概念 1. 排序 2. 排序方法的稳定性 二. 排序方法的基本思想 三. 会模拟排序过程 四. 能够读懂排序算法,第二部分,各章基本内容,第三部分,习题选解,第一章 习题,设n为正整数,试确定下列程序段中各语句的频度。 1. (1) count:=0; 1 (2) FOR i:=1 TO n DO n+1 (3) FOR j:=1 TO i DO (i+1) (4) FOR k:=1 TO j DO (j+1) (5) count:=count+1; j,n,i=1,j=1,i,n,i=1,n,i,i=1,j=1,第一章 习题,2. (1) FOR i:=2 TO n DO n

5、 (2) FOR j:=2 TO i-1 DO n(n-1)/2 (3) x:=x+1; (n-2)(n-1)/2,第二章 习题,. 写算法, 将单循环链表逆转。 PROC ex2_3(ls:linkisttp); p:=ls.next; ls.next:=ls; WHILE pls DO q:=p.next; p.next:=ls.next; ls.next:=p; p:=q ENDP; ex2_3,4. 试写出在单链表中搜索x的算法。若x存在表中,则输出它在表中的序号;否则将x插在表尾。 PROC exam1(la:linkisttp;x:elemtp):integer; pre:=la;

6、 p:=la.next; j:=1; WHILE (pNIL CAND p.datax) DO 【 pre:=p; p:=p.next; j:=j+1 】; IF (pNIL) THEN RETURN(j) ELSE 【 new(s); s.data:=x; s.next:=NIL; pre.next:=s; RETURN(0) 】 ENDP;,第二章 习题,5. 两个集合用线性表表示,采用单链表作为存储结构,且其中元素递增有序,编写求两个集合交集的算法。 PROC exam2(la,lb:linkisttp;VAR lc:linkisttp); new(lc); pc:=lc; pa:=la

7、.next; pb:=lb.next; WHILE (paNIL AND pbNIL) DO IF pa.data=pb.data THEN 【new(s);s.data:=pa.data; pc.next:=s; pc:=s; pa:=pa.next; pb:=pb.next 】 ELSE IF pa.datapb.data THEN pa:=pa.next ELSE pb:=pb.next; pc.next:=NIL ENDP;,第二章 习题,第三章 习题,第三章 习题,试写一个判断表达式中圆括号是否配对出现的算法。 假设表达式存于数组a1.n中,且a是字符数组 FUNC ex3_2(a:

8、ARRAY1.n OF char;n:integer):boolean; INISTACK(S);PUSH(S,#); FOR i:=1 TO n DO IF ai=( THEN PUSH(S,ai); IF ai=) THEN x:=POP(S); IF x( THEN RETURN(false) ; x:=POP(S); IF EMPTY(S) AND x=# THEN RETURN(true) ELSE RETURN(false) ENDF; ex3_2,第三章 习题,假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素(不设头指针),试编写相应的置空队列、入队列和出队列的算法

9、。 (1)置空队列 PROC clear(VAR rear:linkisttp); p:=rear.next; p.next:=p; rear:=p ENDP;,第三章 习题,(2)入队列操作 PROC add(VAR rear:linkisttp;x:elemtp); new(s);s.data:=x; s.next:=rear.next; rear.next:=s; rear:=s ENDP;,第三章 习题,(3)出队列函数 FUNC del(VAR rear:linkisttp):elemtp; IF rear.next=rear THEN RETURN(NULL); h:=rear.n

10、ext; x:=h.next.data;q:=h.next; h.next:=q.next; IF h.next=h THEN rear:=h; dispose(q);RETURN(x) ENDF;,4. 假设sequ0.m-1存放循环队列的元素,同时设rear和quelen分别指示循环队列中队尾元素的位置和包含的元素个数。试给出此循环队列的队空和队满条件,并编写相应的入队和出队算法。 假定形式描述循环队列为 TYPE sqRECORD sequ:ARRAY0.m-1 OF elemtp; rear,quelen:integer END;,第三章 习题,(1)队满条件:q.quelen=m 队

11、空条件:q.quelen=0 (2)入队算法 PROC add_sq(VAR q:sq;x:elemtp); IF q.quelen=m THEN ERROR(overflow); q.rear:=(q.rear+1) MOD m; q.sequq.rear:=x; q.quelen:=q.quelen+1 ENDP;,(3)出队算法 FUNC add_sq(VAR q:sq):elemtp; IF q.quelen=0 THEN 【 ERROR(队列为空); RETURN(NULL) 】; front:=(q.rear-q.quelen+m) MOD m; j:=(front+1) MOD

12、m; y:=q.sequj; q.quelen:=q.quelen-1; RETURN(y) ENDF;,第五章 习题,1设有数组B,按行主顺序存放在1000开始的连续空间中,若元素长度为2,试计算,和B,元素的起始地址,并请回答至少给B数组分配多少个存储单元? 解:(1)B,的存储位置 LOC-1,3,4=1000+(-1-(-1)*(5-0+1)*(4-(-2)+1)+(3-0)*(4-(-2)+1)+(4-(-2)*2 =1054 ,的存储位置 LOC0,0,0=1000+(0-(-1)*(5-0+1)*(4-(-2)+1)+(0-0)* (4-(-2)+1)+(0-(-2)*2 =10

13、88 ()分配给数组B的单元数至少为 ()*()*()*420,4. 一棵n个结点的完全二叉树采用顺序存储结构,试写一非递归算法实现对该树的前序遍历。 类型描述: CONST maxsize=; TYPE sqbitree=ARRAY1.maxsize OF elemtp;,PROC exam4(bt:sqbitree;n:integer); j:=1; INISTACK(S); WHILE j=n OR NOT EMPTY(S) DO IF j=n THEN 【 visite(btj); PUSH(S,j); j:=2*j 】 ELSE 【 j:=POP(S); j:=2*j+1 】 END

14、P;,第七章习题,1. 对如下有向图:,试写出:(1)邻接矩阵 (2)邻接表 (3)以顶点1出发按深度 和广度优 先搜 索遍历 图的顶点序列,0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0,1,2,3,4,5,2,3,5,2,4,3,4,DFS:12534 BFS:12354,2. 对如下无向图:,试写出: (1)邻接矩阵 (2)邻接表 (3)以顶点1出发按深度 和广度 优 先搜 索遍历 图的顶点序列,第七章习题,0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 0 1 0 1 1 1 0,1,2,3,4,5,2,3,1

15、,1,2,2,3,DFS:12354 BFS:12345,3,4,5,5,2,5,4,第七章习题,3. 对如下无向图,分别用Prim和Kruskal算法求最小生成树,6,6,4,2,8,3,6,(1)Prim方法,6,6,4,2,8,3,6,(2)Kruskal方法,6,第七章习题,4. 对如下AOE网,求出各事件的ve, vl和各活动的l和e。并指出关键路径。,a4=3,a2=6,a3=7,a1=8,a5=10,a6=10,a7=9,a8=13,a12=2,a9=6,a11=8,a10=19,第七章习题,5. 对下图,写出拓扑有序序列及入度域变化过程,a1,a2,a3,a3,a4,a4,a5,a6,a3,a5,a5,a6,a3,a6,a2,a4,a5,a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号