数据结构考试大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构复习提纲
第1章
(1)数据结构的四种形式;
(2)算法的五大特征;
(3)算法设计的要求;
(4)算法效率度量方法;
第2章
(1)线性的顺序表示
(2)线性表的链式表示及其相操作
第3章
(1)栈和队列的定义
(2)栈和队列的基本操作;
第4章
(1)二叉树的定义;
(2)二叉树的性质;
(3)二叉树的遍历方法;
(4)二叉树的递归算法;
(5)树和二叉树的转换
(6)森林和二叉树的转换;
(7)hufuman树的构造
第5章
(1)图的存储结构
(2)最小生成树的求解方法
(3)关键路径的求解
(4)拓扑排序
(5)最短路径的求解方法
第6章
(1)二叉排序树的定义
(2)二叉排序树的构造方法
(3)平衡二叉树的定义及其构造方法
(4)B-树的定义及构造方法
(5)哈希表的定义及构造方法
第7章
(1)直接排序
(2)希尔排序
(3)快速排序
(4)选择排序
试卷类型
一、选择题
1.算法的空间复杂度是指()。
A)算法执行过程中所需要的基本运算次数
B) 算法程序中的指令条数
C) 算法执行过程中所需要的存储空间
D) 执行算法程序所需要的时间
2.数据结构是一门研究非数值计算的程序设计问题中计算机的()以及它
们之间的关系和运算等的科学。
A)计算过程B)数据元素
C)数据操作D)逻辑存储结构
3.下面程序段的时间复杂度为()。
for( i = 0; i < n; i++)
for( j = 0; j < m; j++)
A[i][j] = 0;
A) O(m) B) O(n) C) O(m * n) D) O(m/n)
4.在一个长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需
要从前向后依次前移()个元素。
A) n-i B) n-i+1 C) n-i-1 D) i
5.选项()是栈和队列的共同点。
A) 后进先出B) 先进先出
C) 先进后出D) 只允许在端点处进行插入和删除
6.在一棵具有n个结点的二叉树的第i层上,最多可有()个结点。
A) 2i B) 2i-1C) 2i-1 D) 2n
7.如果二叉树T2是由树T1转换而来的二叉树,那么T1中结点的先序就是T2
中结点的()。
A) 先序B) 中序C) 后序D) 无对应关系
8.利用3,6,8,12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树的带权
路径长度为()。
A) 38 B) 58 C) 29 D) 55
9.在一个具有n个结点的无向图中,若具有e条边,则所有顶点的度数之和为
()。
A) n B) e C) 2e D) n+e
10.判断一个有向图是否有环(回路)的方法是()。
A) 求结点的度B) 拓扑排序C) 求关键路径D) 求最短路径
二、填空题
1. 数据的逻辑结构分为线性结构和非线性结构,栈属于线性结构,树属于
结构。
2. 如右图所示的双向链表中,欲在*p前插入一个结点*s,请在下面的空格处填入正确的语句。
s->prior = p->prior; p->prior = s; s->next = p;
3. 一个结点的子树的个数称为该结点的 。
4. 对任何一棵二叉树T ,如果其终端结点数为n 0,度为2的结点数为n 2,则n 0和n 2之间具有性质 。
5. 树根的层次是1,则深度为8的完全二叉树至少有 个结点,拥有100个结点的完全二叉树的最大层次数是 。
6. 二叉树的先序和中序遍历序列分别是ABCDEFGH ,CBEDFAGH ,则后序遍历序列是 。
7. 图的遍历算法有 和广度优先搜索遍历算法。
8. 有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的数据时 次比较成功。
9. 对于关键字序列:12、13、11、18、60、15、7、20、25、100,用筛选法建堆,必须从值为 的关键字开始。 三、简答题
1. 什么是栈?栈对数据进行入栈和出栈操作的原则是什么?
2. 什么是二叉排序树?
3. 简述冒泡排序的基本思想。
4. 使用Prim (普里姆)算法构造出下图的一棵最小生成树,请写出该最小生成树产生的每一步。
5. 根据下图所示的
AOE 网(顶点v1,v2,v3,v4,v5,v6表示事件;弧A,B,C,D,E,F,G ,H 表示活动),请回答以下问题:
(1) 求出所有事件的最早发生时间与最迟发生时间。 (2) 列出所有关键活动。
6. 已知下图所示的二叉树是由某森林转换而来,请画出其原来的森林
7. 从空树开始,
(1) 画出按以下次序向3阶B-树中插入关键码后建立的树(不用写建树的过程,只写最终建立的树)。依次插入的关键字是:20,30,50,52,60,68,70。 (2) 画出基于第(1)步建立的3阶B-树,删除关键字50之后的B-树。 (3) 画出基于第(2)步执行之后产生的B-树,删除关键字68之后的B-树。 8. 设记录的关键字(key )集合是:
K = {15,25,26,4,5,20,3,12,2}
(1) 设Hash 表表长m = 16,选取Hash 函数的方法为“除留余数法”,其函数形式为H(key) = key MOD 15,处理冲突的方法为“线性探测再散列”,请依次取K 中各值,构造出满足所给条件的Hash 表,画出该哈希表的存储结构图; (2) 写出基于集合K 中的关键字,采用快速排序法对其进行升序排序时第一趟之后的结果。
四、算法设计题
1. 已知一个如下图所示的不带头结点的单链表head (注:若头指针名是head ,
则把单链表称为表head ),其存储结构为:
typedef struct LNode{ ElemType data; struct LNode *next; }LNode, *LinkList;
head
…
编写在该单链表中删除具有重复值的多余结点,最终使表中的每个结点的值均不
同的函数void Delete(LinkList &head)。
2. 二叉树采用二叉链表作为存储结构,链表中结点的结构为: