1、五套数据结构经典试题数据结构试卷(一)一、选择题(30分)1 设一组权值集合W=2,3,4,5,6,则由该权值集合构造的哈夫曼树中带权路径长度之和为()。 (A) 20 (B) 30 (C) 40 (D) 452执行一趟快速排序能够得到的序列是()。 (A) 41,12,34,45,27 55 72,63 (B) 45,34,12,41 55 72,63,27 (C) 63,12,34,45,27 55 41,72 (D) 12,27,45,41 55 34,63,723设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。(A) head=0 (B) head-next=
2、0(C) head-next=head (D) head!=04时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是( )。 (A) 堆排序 (B) 冒泡排序 (C) 希尔排序 (D) 快速排序5设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是( )。 (A) 空或只有一个结点 (B) 高度等于其结点数 (C) 任一结点无左孩子 (D) 任一结点无右孩子6一趟排序结束后不一定能够选出一个元素放在其最终位置上的是( )。 (A) 堆排序 (B) 冒泡排序 (C) 快速排序 (D) 希尔排序7设某棵三叉树中有40个结点,则该三叉树的最小高度为( )。 (A) 3 (B)
3、4 (C) 5 (D) 68顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为( )。 (A) O(n) (B) O(n2) (C) O(n1/2) (D) O(1og2n)9二路归并排序的时间复杂度为( )。 (A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(1og2n)10. 深度为k的完全二叉树中最少有( )个结点。 (A) 2k-1-1 (B) 2k-1 (C) 2k-1+1 (D) 2k-111.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为( )。 (A)
4、 front-next=s;front=s; (B) s-next=rear;rear=s; (C) rear-next=s;rear=s; (D) s-next=front;front=s;12.设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为( )。 (A) O(n+e) (B) O(n2) (C) O(ne) (D) O(n3)13.设某哈夫曼树中有199个结点,则该哈夫曼树中有( )个叶子结点。 (A) 99 (B) 100 (C) 101 (D) 10214.设二叉排序树上有n个结点,则在二叉排序树上查找结点的平均时间复杂度为( )。 (A) O(n) (B) O(n2)
5、 (C) O(nlog2n) (D) O(1og2n)15.设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为( )。 (A) 第i行非0元素的个数之和 (B) 第i列非0元素的个数之和 (C) 第i行0元素的个数之和 (D) 第i列0元素的个数之和二、判断题(20分)1调用一次深度优先遍历可以访问到图中的所有顶点。( )2分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。( )3冒泡排序在初始关键字序列为逆序的情况下执行的交换次数最多。( )4满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。( )5设一棵二叉树的先序序列和后序序列,则能够唯一确定出该二叉树
6、的形状。( )6层次遍历初始堆可以得到一个有序的序列。( )7设一棵树T可以转化成二叉树BT,则二叉树BT中一定没有右子树。( )8线性表的顺序存储结构比链式存储结构更好。( )9中序遍历二叉排序树可以得到一个有序的序列。( )10.快速排序是排序算法中平均性能最好的一种排序。( )三、填空题(30分)1for(i=1,t=1,s=0;i=n;i+) t=t*i;s=s+t;的时间复杂度为_。2设指针变量p指向单链表中结点A,指针变量s指向被插入的新结点X,则进行插入操作的语句序列为_(设结点的指针域为next)。3设有向图G的二元组形式表示为G =(D,R),D=1,2,3,4,5,R=r,
7、r=,则给出该图的一种拓扑排序序列_。4设无向图G中有n个顶点,则该无向图中每个顶点的度数最多是_。5设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有_个结点数。6设F和R分别表示顺序循环队列的头指针和尾指针,则判断该循环队列为空的条件为_。7设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_。8简单选择排序和直接插入排序算法的平均时间复杂度为_。9快速排序算法的空间复杂度平均情况下为_,最坏的情况下为_。10.散列表中解决冲突的两种方法是_和_。四、算法设计题(20分)1 设计在顺序有序表中实现二分查找的算
8、法。2 设计判断二叉树是否为二叉排序树的算法。3 在链式存储结构上设计直接插入排序算法数据结构试卷(二)一、选择题(30分)1设某无向图有n个顶点,则该无向图的邻接表中有( )个表头结点。 (A) 2n (B) n (C) n/2 (D) n(n-1)2设无向图G中有n个顶点,则该无向图的最小生成树上有( )条边。 (A) n (B) n-1 (C) 2n (D) 2n-13设一组初始记录关键字序列为(60,80,55,40,42,85),则以第一个关键字45为基准而得到的一趟快速排序结果是( )。 (A) 40,42,60,55,80,85 (B) 42,45,55,60,85,80 (C)
9、 42,40,55,60,80,85 (D) 42,40,60,85,55,804( )二叉排序树可以得到一个从小到大的有序序列。 (A) 先序遍历 (B) 中序遍历 (C) 后序遍历 (D) 层次遍历5设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为( )。 (A) 2i+1 (B) 2i (C) i/2 (D) 2i-16程序段s=i=0;do i=i+1; s=s+i;while(inext=0 (C) head-next=head (D) head!=08设某棵二叉树的高度为10,则该二叉树上叶子结点最多有( )。 (A) 20 (B)
10、 256 (C) 512 (D) 10249设一组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利用二分法查找关键字90需要比较的关键字个数为( )。 (A) 1 (B) 2 (C) 3 (D) 410.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为( )。 (A) top=top+1; (B) top=top-1; (C) top-next=top; (D) top=top-next;二、判断题(20分)1不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”情况。( )2当向二叉排序树中插入一个结点,则该结点一定
11、成为叶子结点。( )3设某堆中有n个结点,则在该堆中插入一个新结点的时间复杂度为O(log2n)。( )4完全二叉树中的叶子结点只可能在最后两层中出现。( )5哈夫曼树中没有度数为1的结点。( )6对连通图进行深度优先遍历可以访问到该图中的所有顶点。( )7先序遍历一棵二叉排序树得到的结点序列不一定是有序的序列。( )8由树转化成二叉树,该二叉树的右子树不一定为空。( )9线性表中的所有元素都有一个前驱元素和后继元素。( )10.带权无向图的最小生成树是唯一的。( )三、填空题(30分)1. 设指针变量p指向双向链表中的结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列
12、为_=p;s-right=p-right;_=s; p-right-left=s;(设结点中的两个指针域分别为left和right)。2. 设完全有向图中有n个顶点,则该完全有向图中共有_条有向条;设完全无向图中有n个顶点,则该完全无向图中共有_条无向边。3. 设关键字序列为(Kl,K2,Kn),则用筛选法建初始堆必须从第_个元素开始进行筛选。4. 解决散列表冲突的两种方法是_和_。5. 设一棵三叉树中有50个度数为0的结点,21个度数为2的结点,则该二叉树中度数为3的结点数有_个。6. 高度为h的完全二叉树中最少有_个结点,最多有_个结点。7. 设有一组初始关键字序列为(24,35,12,2
13、7,18,26),则第3趟直接插入排序结束后的结果的是_。8. 设有一组初始关键字序列为(24,35,12,27,18,26),则第3趟简单选择排序结束后的结果的是_。9. 设一棵二叉树的前序序列为ABC,则有_种不同的二叉树可以得到这种序列。10. 下面程序段的功能是实现一趟快速排序,请在下划线处填上正确的语句。struct record int key;datatype others;void quickpass(struct record r, int s, int t, int &i) int j=t; struct record x=rs; i=s; while(ij) while
14、(ix.key) j=j-1; if (ij) ri=rj;i=i+1; while (_) i=i+1; if (idata=k;t-lchild=t-rchild=0;else if (t-datak) bstinsert(t-lchild,k);else_;3 设指针变量p指向单链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X需要执行的语句序列:s-next=p-next; _;。4 设指针变量head指向双向链表中的头结点,指针变量p指向双向链表中的第一个结点,则指针变量p和指针变量head之间的关系是p=_和head=_(设结点中的两个指针域分别为llink和r
15、link)。5 设某棵二叉树的中序遍历序列为ABCD,后序遍历序列为BADC,则其前序遍历序列为_。6 完全二叉树中第5层上最少有_个结点,最多有_个结点。7 设有向图中不存在有向边,则其对应的邻接矩阵A中的数组元素Aij的值等于_。8 设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则第4趟直接选择排序结束后的结果为_。9 设连通图G中有n个顶点e条边,则对应的最小生成树上有_条边。10 设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与_相互交换即可。四、算法设计题(20分)1. 设计一个在链式存储结构上
16、统计二叉树中结点个数的算法。2. 设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。数据结构试卷(四)一、选择题(30分)1下列程序段的时间复杂度为( )。for(i=0; im; i+) for(j=0; jt; j+) cij=0;for(i=0; im; i+) for(j=0; jt; j+) for(k=0; kright=s; s-left=p; p-right-left=s; s-right=p-right; (B) s-left=p;s-right=p-right;p-right=s; p-right-left=s; (C) p-right=s; p-right-left=s
17、; s-left=p; s-right=p-right; (D) s-left=p;s-right=p-right;p-right-left=s; p-right=s;6下列各种排序算法中平均时间复杂度为O(n2)是( )。 (A) 快速排序 (B) 堆排序 (C) 归并排序 (D) 冒泡排序7设输入序列1、2、3、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是( )。 (A) n-i (B) n-1-i (C) n+l -i (D) 不能确定8设散列表中有m个存储单元,散列函数H(key)= key % p,则p最好选择( )。 (A) 小于等于m的最大奇数 (B
18、) 小于等于m的最大素数 (C) 小于等于m的最大偶数 (D) 小于等于m的最大合数9设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有( )个。 (A) 4 (B) 5 (C) 6 (D) 710.设完全无向图中有n个顶点,则该完全无向图中有( )条边。 (A) n(n-1)/2 (B) n(n-1) (C) n(n+1)/2 (D) (n-1)/211.设顺序表的长度为n,则顺序查找的平均比较次数为( )。 (A) n (B) n/2 (C) (n+1)/2 (D) (n-1)/212.设有序表中的元素为(13,18,24
19、,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过( )次比较。 (A) 1 (B) 2 (C) 3 (D) 413.设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为( )。 (A) 6 (B) 11 (C) 5 (D) 6.514.设有向无环图G中的有向边集合E=,则下列属于该有向图G的一种拓扑排序序列的是( )。 (A) 1,2,3,4 (B) 2,3,4,1 (C) 1,4,2,3 (D) 1,2,4,315.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为(
20、)。 (A) 4 (B) 5 (C) 6 (D) 7二、填空题(30分)1 设指针p指向单链表中结点A,指针s指向被插入的结点X,则在结点A的前面插入结点X时的操作序列为:1) s-next=_;2) p-next=s;3) t=p-data;4) p-data=_;5) s-data=t;2 设某棵完全二叉树中有100个结点,则该二叉树中有_个叶子结点。3 设某顺序循环队列中有m个元素,且规定队头指针F指向队头元素的前一个位置,队尾指针R指向队尾元素的当前位置,则该循环队列中最多存储_队列元素。4 对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第
21、一趟需要进行相邻记录的比较的次数为_,在整个排序过程中最多需要进行_趟排序才可以完成。5 在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择_排序,如果从节省存储空间的角度来考虑则最好选择_排序。6 设一组初始记录关键字序列为(20,12,42,31,18,14,28),则根据这些记录关键字构造的二叉排序树的平均查找长度是_。7 设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序列为_。8 设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为7、19、2、6、32、3、21、10,根据这些频率作为权值构造哈夫曼树,则这棵哈夫曼树的高度为_。9 设一组记录关键字序列为(80,70,33,65,24,56,48)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1