5套数据结构模拟试卷
数据结构模拟试卷一 一、单选题(每题一、单选题(每题 2 2 分,共分,共 2020 分)分) 1.以下数据结构中哪一个是线性结构 A. 有向图B. 队列C. 线索二叉树D. B 树 在一个单链表 HL 中,若要在当前由指针 p 指向的结点后面插入一个由q 指向的结点,则执 行如下D语句序列。 2. A. pq; p-nextq; B. p-nextq; q-nextp; C. p-nextq-next; pq;D. q-nextp-next; p-nextq; 3.以下哪一个不是队列的基本运算() A. 在队列第 i 个元素之后插入一个元素B. 从队头删除一个元素 C. 判断一个队列是否为空D.读取队头元素的值 4.字符 A、B、C 依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成 C个不同的字符串 A.14 B.5 C.6 D.8 5.由权值分别为 3,8,6,2 的叶子生成一棵哈夫曼树,它的带权路径长度为B。 A. 11 B.35 C. 19 D. 53 以下以下 6-86-8 题基于图题基于图 1 1。。 6.该二叉树结点的前序遍历的序列为。 A.E、G、F、A、C、D、B E B.E、A、G、C、F、B、D AGC.E、A、C、B、D、G、F D.E、G、A、C、D、F、B F 7.该二叉树结点的中序遍历的序列为。 C A. A、B、C、D、E、G、F B. E、A、G、C、F、B、D BD C. E、A、C、B、D、G、F 图 1 E.B、D、C、A、F、G、E 8.该二叉树的按层遍历的序列为。 A.E、G、F、A、C、D、B B. E、A、C、B、D、G、F C. E、A、G、C、F、B、D D. E、G、A、C、D、F、B 9.下面关于图的存储的叙述中正确的是。 A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关 C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关 D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 10. 设有关键码序列q,g,m,z,a,n,p,x,h,下面哪一个序列是从上述序列出发建 堆的结果 A. a,g,h,m,n,p,q,x,z B. a,g,m,h,q,n,p,x,z C. g,m,q,a,n,p,x,h,z D. h,g,m,p,a,n,q,x,z 二、填空题(每空二、填空题(每空 1 1 分,共分,共 2626 分)分) 1.数据的物理结构被分为_________、________、__________和___________四种。 2.对于一个长度为 n 的顺序存储的线性表,在表头插入元素的时间复杂度为_________, 在表尾插入元素的时间复杂度为____________。 3.向一个由 HS 指向的链栈中插入一个结点时p 时, 需要执行的操作是________________; 删除一个结点时, 需要执行的操作是______________________________ (假设栈不空而 且无需回收被删除结点) 。 4.对于一棵具有 n 个结点的二叉树,一个结点的编号为i1≤i≤n,若它有左孩子则左孩 子结点的编号为________,若它有右孩子,则右孩子结点的编号为________,若它有双 亲,则双亲结点的编号为________。 5.当向一个大根堆插入一个具有最大值的元素时,需要逐层_________调整,直到被调整 到____________位置为止。 6.以二分查找方法从长度为10 的有序表中查找一个元素时,平均查找长度为________。 7.表示图的三种常用的存储结构为_____________、____________和_______________。 8.对于线性表(70,34,55,23,65,41,20)进行散列存储时,若选用H(K)K 7 作为散列函数,则散列地址为0 的元素有________个,散列地址为 6 的有_______个。 9.在归并排序中,进行每趟归并的时间复杂度为 ______,整个排序过程的时间复杂度为 ____________,空间复杂度为___________。 10.10. 在一棵m阶B_树上, 每个非树根结点的关键字数目最少为________个, 最多为________ 个,其子树数目最少为________,最多为________。 三、运算题(每题三、运算题(每题 6 6 分,共分,共 2424 分)分) 1.写出下列中缀表达式的后缀形式 (1)3X/Y-21 (2)2X*Y3 2.试对图 2 中的二叉树画出其 1 顺序存储表示的示意图; 2 二叉链表存储表示的示意图。 3.判断以下序列是否是小根堆 如果不是, 将它调整 为小根堆。 ((1 1)){ { 12,24,33,65,33,56,48,92,86,70} } ((2 2)){ { 05, 23, 20, 28, 40, 38, 29, 61, 35, 76, 47, 100} } 4.已知一个图的顶点集V 和边集 E 分别为 图 2 V{1,2,3,4,5,6,7}; E{1,23,1,35,1,48,2,510,2,36,3,415,3,512,3,69,4,64, 4,720,5,618,6,725}; 按照普里姆算法从顶点 1 出发得到最小生成树, 试写出在最小生成树中依次得到的各 条边。 四、阅读算法(每题四、阅读算法(每题 7 7 分,共分,共 1414 分)分) 1.void AEStack PushS,3; PushS,4; int xPopS2*PopS; PushS,x; int i,a[5]{1,5,8,12,15}; fori0;ileftNULL ABCBT-right,c1,c2; }//if } 该函数执行的功能是什么 五、算法填空(共五、算法填空(共 8 8 分)分) 向单链表的末尾添加一个元素的算法。 Void InsertRearLNode* newptrnew LNode; If ______________________ { cerrnextNULL ____________________; p-nextnewptr; } } 六、编写算法(共六、编写算法(共 8 8 分)分) 编写从类型为 List 的线性表 L 中将第 i 个元素删除的算法, (假定不需要对 i 的值进行 有效性检查,也不用判别 L 是否为空表。 ) void DeleteListHSp HSHS-next 4. 2i 2i1i/2(或 i/2) 5. 向上根 6. 2.9 7. 邻接矩阵邻接表边集数组 8. 1 4 9. On Onlog2n On