1、昆明理工大学数据结构总复习题一、单选题数据结构研究( )。 A.数据的逻辑结构、存储结构及操作的实现 B. 数据的物理结构C. 数据的逻辑结构与存储结构 D. 数据的逻辑结构。 数据的存储结构包括顺序;链式;散列和( )4 种基本类型。 A. Vector B. Index C. Sets D. Array 若某线性表最常用的操作是取第 i 个元素,则采用( )存储方式最节省运算时间。 A双链表 B 单链表 C顺序表 D 单循环链表 一个单链表中,已知*q 结点是*p 结点的前趋结点,若在*q 和*p 之间插入*s 结点, 则必须执行( )操作。 Aq-next=p -next; p -nex
2、t=s; B p -next=s; s-next=qCp -next=s-next; s-next=p Dq-next=s; s-next= p ; 在一个具有n个结点的有序单链表中,若插入一个新结点,单链表仍然有序,则算法的 时间复杂度为( )。AO(n) BO(1) CO(n2) DO(nlog2n) 队列与一般线性表的区别在于( )。 A. 数据元素的类型不同 B. 插入或删除操作的位置受限制 C. 数据元素的个数不同 D. 逻辑结构不同 设进栈的顺序为 a b c d,则不可能得到的出栈序列是( )。 A.a b c d B.d c b a C. d a b c D. a c d b
3、用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针 B. 头、尾指针都要修改C. 仅修改尾指针 D.头、尾指针可能都要修改循环队列的队满条件为(在牺牲一个存储空间的情况下) ( )A. rear % maxsize =(front+1) % maxsize; B. (rear+1)% maxsize = front+1C. (rear+1)% maxsize = front D. rear = front下面关于串的叙述中,哪一个是不正确的( )A.串是字符的有限序列 B. 模式匹配是串的一种重要运算C. 空串是由空格构成的串 D.串既可以采用顺序存储,也可以采用链式存储稀疏矩阵
4、一般的压缩存储方法有( )两种。 A三元组表和十字链表 B三元组表和哈希表 C二维数组和三维数组 D哈希表和十字链表 中序遍历一颗二叉排序树所得到的结点访问序列是结点值的( )序列。 A.递增或递减 B.递增 C. 递减 D. 无序 在树中,若结点A 有四个兄弟,而且B 是A 的双亲,则B 的度为( )。 A.3 B.4 C.5 D.6 若一棵二叉树具有 10 个度为 2 的结点,则该二叉树的度为 0 的结点个数是( ) A9 B11 C12 D、不确定 n 个顶点的连通图至少有( )条边 A. 0 B. n C. n+1 D. n-1若采用邻接矩阵法存储一个n 个顶点的无向图,则该邻接矩阵是
5、一个 ( ) 。 A 上三角矩阵 B 稀疏矩阵 C对角矩阵 D. 对称矩阵 AOV网是一种( )。 A有向图 B无向图 C有向无环图 D无向无环图采用折半查找方法进行查找,数据文件应为( )。 A有序表和链式存储结构 B 有序表和顺序存储结构 C 随机表和顺序存储结构 D 随机表和链式存储结构 在顺序表2、5、7、10、14、15、18中,用二分法查找关键码 12需做( )次关键码比较。 A2 B3 C1 D5 下面的排序算法中,时间复杂度不是O(n2)的是( )。 A.直接插入排序 B.冒泡排序 C.二路归并排序 D.直接选择排序=算法指的是( ) A计算机程序 B解决问题的计算方法 C排序
6、算法 D解决问题的有限运算序列下列数据结构中,( )是线性结构。 A树 B 队列 C图 D A 和B 下面程序的时间复杂为( )for(i=1,s=0; i=n; i+) t=1;for(j=1;jnext=p-next;p-next=s; B. p-next=s-next;s-next=p; C. q-next=s;s-next=p; D. p-next=s;s-next=q; 栈的插入和删除操作在( )进行。A 栈顶 B 栈底 C 任意位置 D 指定位置设栈的输入序列是 1 2 3 4,则( )是不可能的出栈序列。 A.1 2 4 3 B. 2 1 3 4 C. 1 4 3 2 D. 4
7、3 1 2 设数组datam作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为( ) Afront=front+1 Bfront=(front+1)%(m-1) Cfront=(front-1)%m Dfront=(front+1)%m如下陈述中正确的是( ) A串是一种特殊的线性表 B串的长度必须大于零 C串中元素只能是字母 D空串就是空白串树型结构中元素间存在( )的关系。 A. 一对一 B. 多对多 C. 一对多 D. 随机 一棵深度为 5 的满二叉树中,结点的总数为 ( )。 A.31 B.32 C.33 D.16 一棵二叉树有
8、 67 个结点,这些结点的度或者是 0,或者是 2。这棵二叉树中度为 2 的结点有( )个。 A. 33 B.34 C.32 D.30 下面关于图的存储的叙述中正确的是( )A.邻接矩阵占用的存储空间只与图中结点个数有关,而与边数无关;B.邻接矩阵占用的存储空间只与图中边数有关,而与结点个数无关;C.邻接表占用的存储空间只与图中结点个数有关,而与边数无关;D.邻接表占用的存储空间只与图中边数有关,而与结点个数无关。n 个顶点的连通图至少有( )条边。 An-1 Bn Cn+1 D 0 AOV网是一种( )。A有向图 B无向图 C无向无环图 D有向无环图若采用邻接矩阵法存储一个n 个顶点的无向图
9、,则该邻接矩阵是一个 ( ) 。 A 上三角矩阵 B 稀疏矩阵 C对角矩阵 D. 对称矩阵 对二叉排序树进行( )遍历,可以得到该二叉树所有结点构成的有序序列A. 前序 B. 中序 C.后序 D.按层序 有一个有序表为1,3,9,12,32,41,45,62,75,77,82,95,100, 如果采用二分查找法, 查 值为 82 的结点时,( )次比较后查找成功。 A. 1 B. 2 C. 4 D. 8 假定有 K 个关键字互为同义词,若用线性探测法把这 K 个关键字存入散列表中,至少要进行( )次探测。 A.K-1 次 B. K(K-1)/2 次 C.K+1 次 D.K(K+1)/2 次 =
10、对一个算法的评价,不包括如下( )方面的内容。A健壮性和可读性 B并行性 C正确性 D时空复杂度对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素 B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。A. p-next=HL-next; HL-next=p; B. p-next=HL; HL=p;C. p-next=HL; p=HL; D. HL=p; p-next=HL;栈和队列的共同特点是( )。A.只允许在端点处插入和删除元素 B.都是先进后出
11、C.都是先进先出 D.没有共同点 一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( )A. 2 3 1 B. 3 2 1C. 3 1 2 D. 1 2 3设数组datam作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为( )Afront=front+1 Bfront=(front+1)%(m-1)Cfront=(front-1)%m Dfront=(front+1)%m用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针 B. 头、尾指针都要修改C. 仅修改尾指针 D.头、尾指针可能都要修改设有一个二维
12、数组Amn,假设A00存放位置在644(10),A22存放位置在676(10),每个元素占一个空间,问A33(10)存放在什么位置?脚注(10)表示用10进制表示。A688 B678 C692 D696树最适合用来表示( )。A.有序数据元素 B.无序数据元素C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据二叉树的第k层的结点数最多为( ).A2k-1 B.2K+1 C.2K-1 D. 2k+1若有18个元素的有序表存放在一维数组A19中,第一个元素放A1中,现进行二分查找,则查找A3的比较序列的下标依次为( )A. 1,2,3 B. 9,5,2,3C. 9,5,3 D. 9,4,
13、2,3对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1) B. O(n) C. O(1og2n) D. O(n2)对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( )个,A1 B2 C3 D4设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。A.5 B.6 C.7 D.8AOV网是一种( )。A有向图 B无向图 C无向无环图 D有向无环图时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是( )。A. 堆排序 B. 冒泡排序 C. 希尔排序 D. 快速排序快速排序在
14、最坏情况下的时间复杂度为( )。AO(log2n) BO(nlog2n) C0(n) D0(n2)从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。A. O(n) B. O(1) C. O(log2n) D. O(n2)用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84 则所采用的排序方法是( )A选择排序 B希尔排序 C归并排序 D快速排序设某完全无向图中有n个顶
15、点,则该完全无向图中有( )条边。(A) n(n-1)/2 (B) n(n-1) (C) n2 (D) n2-1二、判断题线性表的长度是线性表所占用的存储空间的大小。( )在顺序表中取出第i个元素所花费的时间与i成正比。( )在栈为空的情况下,不能做出栈操作,否则产生下溢出。( )在对链队列做出队操作时,不会改变front指针的值。( )二叉树中叶子结点就是二叉树中没有左右子树的结点。( )有向图用邻接矩阵表示后,结点i的出度等于第i行中非0且非的元素个数。( )对B树中任一非叶子结点中的某关键字k,比k小的最大关键字和比k大的最小关键字一定都在叶子结点中。( )对任意一个图,从它的某个结点出
16、发进行一次DFS或BFS可访问到该图的每个结点。( )对一个堆,无论按二叉树层次遍历还是先序遍历,都不一定能得到有序序列。( )任一AOE网中至少有一条关键路径,且是从源点到汇点的路径中最长的一条。( )线性表采用链表方式和顺序方式存储,执行插入和删除运算的时间复杂度都是O(n),因而两种存储方式的插入、存储运算所花费的时间相同。在双循环链表中,任意一结点的后继指针均指向其逻辑后继。在对链队列做出队操作时,不会改变front指针的值。已知一棵树的先序序列和后序序列,一定能构造出该树。若一棵二叉树的任一非叶结点的度为2,则该二叉树为满二叉树。有向图用邻接矩阵表示后,顶点i 的入度等于邻接矩阵中第
17、i列的元素个数。所谓平衡二叉树是指左右子树的高度差的绝对值不大于1的二叉树。在一个根最大堆中,最大元素在根,最小元素在最低层。快速排序算法在每一趟排序中都能找到一个元素放在其最终的位置上。9阶B树中,除根以外的任一结点中的关键字个数不小于4。在顺序表中取出第i个元素所花费的时间与i成正比。在栈为空的情况下,不能做出栈操作,否则产生下溢出。在循环队列中,若尾指针Rear大于头指针Front,则其元素个数为(Rear Front)。若一棵二叉树的任一非叶结点的度为2,则该二叉树为满二叉树。已知一棵树的先序序列和后序序列,一定能构造出该树。向二叉排序树中插入一个结点,所需比较的次数可能大于此二叉排序
18、树的高度。若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条。9阶B树中,除根以外的任一个非叶子结点中的关键字数目均在59之间。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树非空,则根结点的值大于其左孩子的值;若它的右子树非空,则根结点的值小于其右孩子的值。给定结点数的平衡二叉树的高度是唯一的。理想情况下,在散列表中查找一个元素的时间复杂度为O(1)。三、应用题已知一棵二叉树的前根序列和中根序列分别为ABDGHECFIJ及GDHBEACIJF,请画出这棵二叉树,并写出后根序列。(8分)给定权值7,18,3,22,5,25,12,8,构造相应的哈夫曼树
19、,并求这棵哈夫曼树的带权路径长度WPL。(8分)已知散列函数为H(K)=K mod 13,关键码序列为25,37,52,43,84,99,120,15,26,11,70,82,1,采用拉链法处理冲突,画出构造的散列表,并计算查找成功的平均查找长度。(8分)设有无向图G(如右图所示),i、写出采用邻接矩阵存储的表现形式;(3分)ii、按照其存储结构给出用普里姆算法构造最小生成树的过程(5分)iii、写出该图的深度优先和广度优先遍历的序列。(6分)=已知一棵二叉树的前序遍历的结果序列是ABDGEHCFI,中序遍历的结果是GDBHEAFIC,试写出这棵二叉树的后序遍历结果。(要求分析过程) 已知某系
20、统在通信联络中只可能出现9种字符,其频率分别为0.05,0.20,0.07,0.08,0.14,0.23,0.02,0.11,0.10设它的权值w(5,20,7,8,14,23,2,11,10),试设计哈夫曼编码。已知一组记录的排序码为(46,79,56,38,40,80, 95,24),写出对其进行快速排序的每一次划分结果。已知一个散列表如下图所示:3520334859 0 1 2 3 4 5 6 7 8 9 10 11 12 其散列函数为h(key)=key%13, 处理冲突的方法为双重散列法,探查序列为: hi=(h(key)+i*h1(key)%m i=0,1,,m1 其中 h1(ke
21、y)=key%11+1回答下列问题:(1)对表中关键字35,20,33和48进行查找时,所需进行的比较次数各为多少?(2)该散列表在等概率查找时查找成功的平均查找长度为多少?=已知一棵二叉树的前序遍历的结果序列是ABDEGIKCFHJL,中序遍历的结果是DBEIKGACFJLH,试写出这棵二叉树的后序遍历结果。设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。设散列表的长度为8,散列函数H(k)=k mod 7,初始记录关键字序列为(25,31,8,27,13,68),要求分别计算出用线性探测法和链地址法作为解决冲突方法
22、的平均查找长度。已知一个图的顶点集V和边集E分别为:V=1,2,3,4,5,6,7; E=(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25;用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。四、阅读算法如下为二分查找的非递归算法,试将其填写完整。Int Binsch(ElemType A ,int n,KeyType K)int low=0;int high=n-1;while (low=high)int mid=_;if (K=Amid.key
23、) return mid; /查找成功,返回元素的下标 else if (Knext) q=L;L=Lnext;p=L;S1: while(pnext) p=pnext;S2: pnext=q;qnext=NULL; return L; 请回答下列问题:(1)说明语句S1的功能;(3分)(2)说明语句组S2的功能;(3分)二叉搜索树的查找递归算法:(9分)bool Find(BTreeNode* BST,ElemType& item) if (BST=NULL) return false; /查找失败 else if (item=BST-data) item=BST-data;/查找成功 return _(1)_; else if(itemdata) return Find(_(2)_,item); else return Find(_(3)_,item); /if五(10分)已知一个图的顶点集V各边集G如下:V = 0,1,2,3,4,5,6,7,8,9;E = (0,1),(0,3),(1,2),(1,7),(2,8),(3,4),(3 ,5),(5,6),(5,8),(5,9),(6,7),(7,8),(8,9)(1)写出它的邻接表;(4分)(2)根据邻接表存储分别写出从顶点V0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。(6分)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1