当前位置:文档之家› 数据结构专升本补习.

数据结构专升本补习.

nodetype=RECORD data:elemtp; next:pointer
END; linkisttp=pointer;
第二章 线性表
四. 五. 一元多项式的单链表表示 六. 难点
1. 顺序存储结构编写算法时注意事项 2. 单链表的建立 3. 单链表中前驱结点的记录 4. 双向链表中插入结点时的语序
(3) FOR j:=1 TO i DO
(i+1)
i=1
ni
(4) FOR k:=1 TO j DO (j+1)
i=1 j=1
ni
(5) count:=count+1; j
i=1 j=1
第一章 习题
2. (1) FOR i:=2 TO n DO (2) FOR j:=2 TO i-1 DO (3) x:=x+1;
ENDP; {merge_sub}
第二章 习题
3. 写算法, 将单循环链表逆转。 PROC ex2_3(ls:linkisttp);
p:=ls.next; ls.next:=ls; WHILE p<>ls DO [ q:=p.next;
p.next:=ls.next; ls.next:=p; p:=q ] ENDP; {ex2_3}
n n(n-1)/2
(n-2)(n-1)/2
第二章 习题
1.试编写计算单链表中结点个数的算法。 FUNC count_node1(la:linkisttp):integer; {带头结点, 递归算法}
IF la↑.next=NIL THEN RETURN(0) ELSE RETURN(1+count_node1(la↑.next))
ENDP; {merge_XY}
PROC merge_main(lx,ly:linkisttp;VAR lz:linkisttp); px:=lx↑.next; py:=ly↑.next; lz:=lx; dispose(ly); merge_sub(px, py, lz)
ENDP; {merge_main}
第二章 习题
4. 试写出在单链表中搜索x的算法。若x存在表 中,则输出它在表中的序号;否则将x插在表 尾。
PROC exam1(la:linkisttp;x:elemtp):integer;
pre:=la; p:=la.next; j:=1;
数据结构专升本补习
主讲:王晓斌
目录
复习提纲 各章基本要求 习题选解 考题解析
第一部分
复习提纲
第一章 绪 论
一. 基本概念和术语
1. 数据 2. 3. 数据对象 4. 数据结构及其形式化描述
DS=(D,R) 5. 四种基本数据结构 6. 数据类型
第一章 绪 论
二. 算法描述 三. 算法的基本特性及“好”算法的
第三章 栈和队列
一. 栈的特点及基本操作 二. 栈的应用(读写递归算法时注意事项) 三. 队列的特点及基本操作 四. 循环队列:队空、队满的判定
第五章 数组和广义表
一. 数组及其操作 二. 数组元素的存放方式及存储地址的计算 三. 广义表的定义、性质及操作
第六章 树和二叉树
一. 基本概念 二. 二叉树的性质 三. 二叉树的存储结构 四. 二叉树的遍历 五. 树、森林和二叉树之间的转换 六. 哈夫曼树的构造
PROC merge_sub(px, py, q:linkisttp); IF px<>NIL AND py<>NIL THEN [ q:=px; px:=px↑.next; q↑.next:=py; q:=py; py:=py↑.next; q↑.next:=px; merge_sub(px, py, q); ] ELSE IF py<>NIL THEN q↑.next:=py
PROC merge_XY(lx,ly:linkisttp;VAR lz:linkisttp); px:=lx↑.next; py:=ly↑.next; lz:=lx; WHILE (px<>NIL) AND (py<>NIL) DO [ q:=px; px:=px↑.next; q↑.next:=py; q:=py; py:=py↑.next; q↑.next:=px; ] IF py<>NIL THEN q↑.next:=py; dispose(ly)
第七章 图
一. 图的基本术语 二. 图的存储结构:邻接矩阵、邻接表 三. 一定存储结构下图的遍历 四. 图的典型应用
1. 最小生成树 2. 拓扑排序 3. 关键路径 4. 最短路径
第九章 查找
一. 基本术语 二. 顺序表查找:顺序、折半、分块 三. 二叉排序树及其构造 四. Hash表的构造
第十章 内部排序
特征 四. 简单时间复杂度的分析
第二章 线性表
一. 线性表的逻辑结构及基本操作 二.
CONST maxlen= TYPE sqlisttp=RECORD
elem:ARRAY[1··maxlen] OF elemtp; last:0··maxlen END;
第二章 线性表
三. TYPE pointer=↑nodetype;
ENDF;{count_node1}
FUNC count_node2(la:linkisttp):integer; z:=0; p:= la↑.next; {带头结点, 非递归} WHILE p<>NIL DO [p:=p↑.next; z:=z+1]; RETURN(z) ENDF;{count_node2}
一. 基本概念
1. 排序 2. 排序方法的稳定性
二. 排序方法的基本思想 三. 会模拟排序过程 四. 能够读懂排序算法
第二部分
各章基本内容
第三部分
习题选解
第一章 习题 设n为正整数,试确定下列程序段中各语句的频
度。
:=1 TO n DO n
n+1
2.设X= (x1,x2,…,xn)和Y= (y1,y2,…,ym)为两个单链表, 试写出将X和Y归并为一个单链表Z的算法,使得:
┏ (x1,y1,x2,y2,…,xm,ym,xm +1,…,xn) 当m <= n Z= ┃
┗ (x1,y1,x2,y2,…,xn,yn,yn +1,…,ym) 当m > n
相关主题