1、 数据结构辅导试题一 一 、简答问题: 1 四类数据结构 2 线性结构与非线性结构有何差别? 3 简述算法的定义与特性。 4 设有 1000 个无序元素,仅要求找出前 10 个最小元素,在下列排序方法中(归并排序、基数排序、快速排序、堆排序、插入排序)哪一种方法最好,为什么? 二、 判断正误:(每小题 1 分,共 5 分)正确在( )内打,否则打 。 1 ( )二叉排序树或是一棵空树,或是具有下列性质的二叉树: 若它的左子树非空,则根结点的值大于其左孩子的值, 若它的右子树非空,则根结点的值大于其右孩子的值。 2 ( )索引顺序表的特点是块内可无序,块间要有序。 3 ( )子串是主串中任意个连
2、续字符组成的序列。 4 ( )线性结构只能用顺序结构存放,非线性结构只能用链表存放。 5 ( )快速排序的枢轴元素可以任意选定。 三、单项选择题: (每小题 1 分,共 4 分 ) 1栈 S 最多能容纳 4 个元素。现有 6 个元素按 A、 B、 C、 D、 E、 F 的顺序进栈 , 问下列哪一个序列是可能的出栈序列 ? A)E、 D、 C、 B、 A、 F B)B、 C、 E、 F、 A、 D C)C、 B、 E、 D、 A、 F D)A、 D、 F、 E、 B、 C 2将一棵有 100 个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为 1,则编号为 49 的
3、结点的左孩子的编号为: A、 98 B、 99 C、 50 D、 48 3. 对下列关键字序列用快速排序法进行排序时,速度最快的情形是: A) 21、 25、 5、 17、 9、 23、 30 B) 25、 23、 30、 17、 21、 5、 9 B) 21、 9、 17、 30、 25、 23、 5 D) 5、 9、 17、 21、 23、 25、 30 4. 设森林 F 中有三棵树,第一、第二和第三棵树的结点个数分别为 M1、 M2 和 M3。与森林 F 对应的二叉树根结点的右子树上的结点个数是: A) M1 B) M1+M2 C) M3 D) M2+M3 四、填空题: (每小题 2 分
4、 ,共 20 分 ) 1 设一哈希表表长 M 为 100 ,用除留余数法构造哈希函数,即 H( K) =K MOD P( Pnext= 和 p-next= 的操作 . 8广义表 (a,b),c,d)的表头是 ,表尾是 9循环单链表 LA 中,指针 P 所指结点为表尾结点的条件是 10在一个待排序的序列中,只有很少量元素不在自己最终的正确位置上,但离他们的正确位置都不远,则使用 排序方法最好。 五、构造题:(每小题 5 分,共 25 分) 1 已知一棵二叉树,其中序序列 DBCAFGE,后序序列 DCBGFEA,构造该二叉树 。 2 设哈希表长度为 11,哈希函数 H( K) =( K 的第一字
5、母在字母表中的序号) MOD11,若输入顺序为( D, BA, TN, M, CI, I, K, X, TA),处理冲突方法为线性探测再散列或链地址法,要求构造哈希表,并求出等概率情况下查找成功平均查找长度。 3 有一组关键字 50, 52, 85, 22, 96, 17, 36, 55,请用快速排序,写出第一趟排序结果。 4 已知叶子结点值 2, 3, 5, 6, 9, 11,构造哈夫曼树,计算其带权路径长度。 5 画出 8 个结点的折半判定树。 六、算法设计题:(每小题 15 分,共 30 分)(仅要求给出子程序) 1编写算法,判断带头结点的双向循环链表 L 是否对称。( 15 分) 对称
6、是指:设各元素值 a1,a2,.,an, 则有 ai=an-i+1 , 即指: a1= an, a2= an-1 。 结点结构为: prior data next 2 二叉排序树 T 用二叉链表表示,其中各元素均不相同。 ( 1) 写出递归算法,按递减顺序打印各元素的值。( 10 分) ( 2) 写出完成上述要求的非递归算法。( 5 分) 数据结构试卷参考答案 一 、简答问题:(每小题 4 分,共 16 分) 1 集 合结构、线性结构、树形结构、网状结构 2 线性结构的前驱与后继之间为一对一关系,非线性结构的前驱与后继之间通常为一对多或多对多关系。 3 解决特定问题的有限指令序列。有限性、确定
7、性、可行性、有 0 个或多个输入数据、有 1 个或多个输出结果。 4 堆排序。因为一趟堆排序排定一个元素,只需进行前 10 趟堆排序就可以了。其它排序方法均需进行完全排序。 二、判断正误:(每小题 1 分,共 5 分) 正确在( )内打,否则打 。 1.( ) 2.() 3.() 4.( ) 5.() 三、单项选择题: (每小题 1 分,共 4 分 ) 1 C) 2 A) 3. A) 4. D) 四、填空题: (每小题 2 分 ,共 20 分 ) 1 97 2. n+1 3. 链域数目不同 4. 哈希查找法 5. 26 1 6. 1168 7. p-next 、 s 8.(a,b) 、 (c,
8、d) 9. P-next=LA 10. 直接插入 五、构造题:( 每小题 5 分,共 25 分) 1 2 0 1 2 3 4 5 6 7 8 9 10 K TA BA M D CI X TN I ASL=20/9 0 1 2 3 4 5 6 7 8 9 10 ASL=15/9 3 36, 17, 22, 50, 96, 85, 52, 55 4 WPL=11 2+6 2+9 2 +5 3 +2 4+3 4 =87 注 :哈夫曼树的左右子树可以互换。 5 注 :如果求中点时采用向上取整,则二叉树的形态为左子树偏长。 六、算法设计题:(每小题 15 分,共 30 分) (仅要求给出子程序) 1 解
9、答 : int judge(DLinkList L) p=L-next; q=L-prior; while(p!=q) if(p-data!=q-data) return 0; if(p-next=q) return 1; p=p-next; q=q-prior; return 1; 注 :可以不用返回值,而用打印信息。 2 解答 : ( 1) void print_1(BiTree T) if(T!=NULL) print_1(T-RChild); printf(“%c”, T-data); print_1(T-LChild); ( 2) void Print_2( BiTree T) In
10、itStack ( p=T; while(p!=NULL | ! IsEmpty(S) while (p!=NULL) Push( p=p-RChild; if ( ! IsEmpty(S) ) Pop( printf (“%c”, p - data ); p = p - LChild; 数据结构辅导试题 二 一、简答题:(每小题 3 分,共 15 分) 1. 什么情况下二叉排序树的查找性能较好?什么情况下二叉排序树的查找性能最差? 2. 比较顺序表与单链表的优缺点。 3. 请写出栈的链式存储结构的类型定义。 4. 在起泡排序过程中,有的关键字在某趟排序中可能朝着与最终排序相反的方向移动,试举
11、例说明之。 5. 简述参数传递的主要方式及其特点。 二、判断正误:(每小 题 1 分,共 5 分) 正确在( )内打,否则打 。 ( )( 1)在拓朴序列中,如果结点 Vi 排在结点 Vj 的前面,则一定存在从 Vi 到 Vj 的路径。 ( )( 2)在采用线性探测法处理冲突的散列表中,所有同义词在表中一定相邻。 ( )( 3)在一个小根堆中,具有最大值的元素一定是叶结点。 ( )( 4)索引顺序表的特点是块间可无序,但块内一定要有序。 ( )( 5)哈夫曼树中没有度为 1 的结点,所以必为满二叉树。 三、单项选择题: (每小题 1 分,共 5 分 ) 1对于只在表的首、尾进行插入操作的线性表
12、,宜采用的存储结 构为 : A) 顺序表 B) 用头指针表示的单循环链表 C) 用尾指针表示的单循环链表 D) 单链表 2假设以第一个元素为分界元素,对字符序列( Q, H, C, Y, P, A, M, S, R, D, F, X)进行快速排序,则第一次划分的结果是: A) (A, C, D, F, H, M, P, Q, R, S, X, Y) B) (A, F, H, C, D, P, M, Q, R, S, Y, X) C) (F, H, C, D, P, A, M, Q, R, S, Y, X) D) (P, A, M, F, H, C, D, Q, S, Y, R, X) 3下面是
13、三个关于有向图运算的叙述: ( 1)求有向图结点的拓扑序列,其结果必定是唯一的 ( 2)求两个指向结点间的最短路径,其结果必定是唯一的 ( 3)求 AOE 网的关键路径,其结果必定是唯一的 其中哪个(些)是正确的? A) 只有( 1) B) ( 1)和( 2) C) 都正确 D) 都不正确 4若进栈序列为 a, b, c,则通过入出栈操作可能得到的 a, b, c 的不同排列个数为 : A) 4 B) 5 C) 6 D) 7 5. 以下关于广义表的叙述中 ,正确的是: A) 广义表是由 0 个或多个单元素或子表构成的有限序列 B) 广义表至少有一个元素是子表 C) 广义表不能递归定义 D) 广
14、义表不能为空表 四、填空题: (每小题 2 分 ,共 20 分 ) 1 一棵含有 101 个结点的完全二叉树存储在数组 A1.101中 , 对 1k101, 若 Ak是非叶结点 , 则 k 的最小值是 : , k 的最大值是 : 。 2. 设 s=YOU ARE JUDGING IT RIGHT OR WRONG,顺序执行下列操作:SubString(sub1,s,1,8); SubString(sub2,s,20,5); StrCat(sub1,sub2); 则最后 sub1 的值为: 。 3. 若一个算法中的语句频度之和为 T(n) = 3720n+4nlogn,则算法的时间复杂度为_ 。
15、 4广义表 (a),b),c),d)的表头是 ,表尾是 。 5 已知有向图的邻接矩阵,要计算 i 号结点的入度,计算方法是: 将 累加。 6要在一个单链表中 p 所指结点之后插入一个子链表,子链表第一个结点的地址为 s,子链表最后一个结点的地址为 t, 则应执行操作: 和 。 7. 用带头结点的循环链表表示的队列 , 若只设尾指针 rear, 则队空的条件是 。 8已知二维数组 A1020采用行序为主方式存储,每个元素占 2 个存储单元 ,并且 A00的存储地址是 1024, 则 A618的地址是 9在表示二叉树的二叉链表中 ,共有 个空链域。 10 n 个顶点的连通无向图至少有 条边,至多有
16、 条边。 五、构造题:(每小题 6 分,共 30 分) 1已知二叉树的中序序列为 DBGEAFC,后序序列为 DGEBFCA,给出对应的二叉树。 2已知一个图的顶点为 A、 B、 C、 D,其邻接矩阵的上三角元素全为 0(包括主对角线元素),其他元素均为 1。请画出该图,并给出其邻接表。 3给定权值 8, 12, 4, 5, 26, 16, 9,构造一棵带权路径长度最短的二叉树,并计算其带权路径长度。 4图 2 表示一个地区的通讯网,边表示城市间的通讯线路,边上的权值表示架设线路花费的代价,请找出能连通每个城市、且总代价最省的 n-1 条线路。 图 2 5对关键字序列 (72, 87, 61,
17、 23, 94, 16, 05, 58) 进行堆排序,使之按关键字递减次序排列。请写出排序过程中得到的初始堆和一趟排序后的序列状态。 六、算法设计题:(共 25 分) 1 设有一个由正整数组成的单链表 L(含头结点),编写完成下列功能的算法: 找出最小值结点 P, 若最小值是奇数,则删除结点 P。 15 分 2 已知树用孩子兄弟链表存储, root 指向根结点。编写算法,逐层遍历这棵树。 10 分 数据结构试卷参考答案 一、简答题:(每小题 3 分,共 15 分) 1. 前驱与后继之间通常为一对多或多对多的关系。 2. 顺序表优点:随机查找,存储密度大 顺序表缺点:插入、 删除不便,静态分配,
18、表长固定 单链表优点:插入、删除方便,动态分配,表长灵活 单链表缺点:查找不便,存储密度小 3. 关键字相同的两个记录,排序前后其先后顺序不变。 4. typedef struct node ElemType data; struct node * next; *LinkStack; 5. 当二叉排序树接近平衡二叉树或完全二叉树时查找性能较好,当二叉排序树为单边单枝二叉树时查找性能最差。 二、判断正误:(每小题 1 分,共 5 分) 正确在( )内打,否则打 。 ( )( 1) ( )( 2) ( )( 3) ( )( 4) ( )( 5) 三、单项选择题: (每小题 1 分,共 5 分 ) 1 C) 2 C) 3 D) 4 B) 5. A) 四、填空题: (每小题 2 分 ,共 20 分 ) 1 1 2. YOU ARE RIGHT 3. O(nlogn) 4 (a),b),c) , (d) 5 i 列元素 6 t-next=p-next , p-next=s 7. rear-next=rear 8 1300 9 n+1 10 n-1 五、构造题:(每小题 6 分,共 30 分) 1 2 3 或: WPL=8 3+4 4+5 4+16 2+9 3+12 3+26 2 =207 注 :哈夫曼树的左右子树可以互换。 4 解 1:
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。