数据结构期末复习

数据结构期末复习

选择题

1.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( d ) A. 1,2,3 B. 9,5,2,3 C. 9,5,3 D. 9,4,2,3
第一次:(18+1)/2=9
第二次:(9-1+1)/2=4
第三次:(4-1+1)/2=2
第四次:(2+1+4)/2=3

2.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为 ( c )。
A. O(1)   B. O(n)   C. O(1og2n) D. O(n2)

3.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(b)个空指针域。
(A) 2m-1 (B) 2m (C ) 2m+1 (D) 4m

4.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为(c )。
(A) R-F (B) F-R (C ) (R-F+M)%M (D) (F-R+M)%M

5.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为( d)。
(A) n,e (B) e,n (C ) 2n,e (D) n,2e
G是无向图,在其邻接表表示中有n个顶点表结点和2e个边表结点
G是有向图,在其邻接表表示中有n个顶点表结点和e个边表结点

6… 设某强连通图中有n个顶点,则该强连通图中至少有( c)条边。
(A) n(n-1) (B) n+1 (C ) n (D) n(n+1)
若是个环,则任意两个顶点之间都有联系

7.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( b)方法可以达到此目的。
(A) 快速排序 (B) 堆排序 (C ) 归并排序 (D) 插入排序

8.下列四种排序中(d)的空间复杂度最大。
(A) 插入排序 (B) 冒泡排序 © 堆排序 (D) 归并排序
B.n^2

9.设有n个待排序的记录关键字,则在堆排序中需要( a)个辅助记录单元。
(A) 1 (B) n ( C) nlog2n (D) n2
记录根节点

10.设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有(c)条有向边。
(A) n (B) n-1 © m (D) m-1

11.下列四种排序中( a)的空间复杂度最大。
(A) 快速排序 (B) 冒泡排序 © 希尔排序 (D) 堆
快速排序 :最好log2n,最坏n
冒泡排序:1
希尔排序:1
堆 :1

12.数据的最小单位是( a)。
(A) 数据项 (B) 数据类型 © 数据元素 (D) 数据变量

13.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是( a)。
(A) head0 (B) head->next0
© head->next==head (D) head!=0

14.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是( d)。
(A) 堆排序 (B) 冒泡排序 © 快速排序 (D) 希尔排序

15.( b )二叉排序树可以得到一个从小到大的有序序列。
(A) 先序遍历 (B) 中序遍历 © 后序遍历 (D) 层次遍历

16.建立一个长度为n的有序单链表的时间复杂度为(c)
(A) O(n) (B) O(1) © O(n2) (D) O(log2n)

17.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为( a )。
(A) N1-1 (B) N2-1 © N2+N3 (D) N1+N3
18.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过(c)次比较。
(A) 1 (B) 2 © 3 (D) 4

判断题
  1. 快速排序是排序算法中平均性能最好的一种排序。( t )

  2. 设一棵树T可以转化成二叉树BT,则二叉树BT中一定没有右子树。( t )

  3. 当向二叉排序树中插入一个结点,则该结点一定成为叶子结点。( t)

  4. 有向图的邻接表和逆邻接表中表结点的个数不一定相等。(f )

  5. 顺序表查找指的是在顺序存储结构上进行查找。( f )

填空题
  1. 通常从四个方面评价算法的质量:正确性,易读性,强壮性,高效率
  2. 对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有___e___个和___2e__个。
  3. AOV网是一种__有向无回路__的图。
  4. 向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度____增加1_____。
  5. 在堆排序的过程中,对任一分支结点进行筛选运算的时间复杂度为_O(log2n)__,整个堆排序过程的时间复杂度为_O(nlog2n)_。
  6. 为了能有效地应用HASH查找技术,必须解决的两个问题是______构造一个好的HASH函数__和_____确定解决冲突的方法___。
  7. 设某棵二叉树中度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树中度数为2的结点数为__n0-1_______;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有__2n0+n1_个空指针域。
  8. 设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=_d/2
  9. 设一组初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始小根堆为__31 38 44 56 75 80 55 63_________。
  10. 设一棵完全二叉树中有500个结点,则该二叉树的深度为_____9_____;若用二叉链表作为该完全二叉树的存储结构,则共有501_个空指针域。 (孩子结点*2+1)
  11. 设有向图G用邻接矩阵A[n][n]作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的___出度,第i列上所有元素之和等于顶点i的_入度_。
  12. 设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较__7_次就可以断定数据元素X是否在查找表中。log2n
  13. 设有n个无序的记录关键字,则直接插入排序的时间复杂度为____n_*n___,快速排序的平均时间复杂度为__nlog2n___。
  14. 设初始记录关键字序列为(K1,K2,…,Kn),则用筛选法思想建堆必须从第__n/2__个元素开始进行筛选。
  15. 设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始小根堆为__16 18 19 20 30 22__。
  16. 设有一个顺序共享栈S[0:n-1],其中第一个栈项指针top1的初值为-1,第二个栈顶指针top2的初值为n,则判断共享栈满的条件是___top1+1=top2_______。
  17. 在图的邻接表中用顺序存储结构存储表头结点的优点是____可以随机访问到任一个顶点的简单链表____。
  18. 栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为___FILO_表;队列的插入和删除运算分别在队列的两端进行,先进队列的元素必定先出队列,所以又把队列称为__FIFO_表。
  19. 设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为____f==r__。
  20. 设一棵二叉树的前序序列为ABC,则有__5________种不同的二叉树可以得到这种序列。
  21. 下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上正确的内容。
    typedef struct node
    {int data;
    struct node *lchild;
    struct node *rchild;
    }bitree;
    void bstinsert(bitree &t,int k)
    {
    if (t==0 ) {___t=(bitree
    )malloc(sizeof(bitree))______ ;t->data=k;t->lchild=t->rchild=0;}
    else if (t->data>k) bstinsert(t->lchild,k);else________bestinsrt(t->rchild,k)_____;
    }
  22. 对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的交换的次数为______6___,在整个排序过程中最多需要进行___8___趟排序才可以完成。
  23. 设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二叉排序树的平均查找长度是__________19/7______________
其他

1.设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。
22 40 45 48 80 78 . 40 45 48 80 22 78
简单选择排序:每次找到最小的放在最后
直接插入排序:每次选未排序的第一个数在要排序的地方插入

2.设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。
2,ASL=(11+22+34+42)/9=25/9

瑞格题在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

排序

直接插入排序 冒泡排序 简单选择排序

时间复杂度 O(n^2)
空间复杂度 O(1)

希尔排序

时间复杂度 不定但比直接插入低
空间复杂度 O(1)

快速排序

时间复杂度 O(nlog2n)
空间复杂度 O(log2n) O(n)

堆排序

时间复杂度 O(nlog2n)
空间复杂度 O(1)

归并排序

时间复杂度 O(nlog2n)
空间复杂度 O(n)

不稳定排序

希尔排序 简单选择排序 快速排序 堆排序

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值