1、一、选择题1. 树最适合用来表示( )。A. 有序数据 B. 无序数据元素C. 元素之间具有分支层次关系的数据 D. 元素之间无联系的数据2. 一个堆是一棵( )二叉树。A. 普通 B. 排序 C. 满 D. 完全3. 设哈夫曼树中的叶子结点总数为 m,若用二叉链表作为存储结构,则该哈夫曼树中共有( )个空指针域。A. 2m-1 B. 2m C. 2m+1 D. 4m4. 线性结构的顺序存储结构是一种( )的存储结构。A. 随机存取 B. 顺序存取 C. 索引存取 D. 散列存取5. 一下是平衡二叉树的是( )。A. B. C. D. 6. 对图进行广度优先遍历时,通常采用( )来实现算法。A
2、. 栈 B. 队列 C. 树 D. 图7. 有一个有序表为 8,15,20 ,22 ,32,41,45,62,75,77,82,85 ,97 ,当二分查找值为 22 的数据时要进行( )次比较。A. 2 B. 3 C. 4 D. 58. 设单链表中结点的结构为 ( data , next ) 。已知指针 n 所指结点不是尾结点,若在指针p 所指结点之后插入结点 s,则应执行下列哪一个操作?A. s-next=p; p-next=s; B. s-next=p-next; p-next=s;C. s-next=p-next; p=s; D. p-next=s; s-next=p;9. 由权值分别为
3、 11. 8. 6. 2. 5 的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。A. 24 B. 71 C. 48 D. 5310. 无向图 G = ( V, E ),其中 V = a,b ,c,d,e,f ,E = (a, b) , (a, c) , (a, e) , (b, e) , (c, f) , (f, d) , (e, d) 。对该图进行深度优先遍历,下面不能得到的序列是( )。A. acfdeb B. aebdfc C. aedfcb D. abecdf11. 设有广义表 D ( a, b, D ),其长度为( ),深度为( )。A. B. 3 C. 2 D. 512. 线
4、性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。A. 单链表 B. 仅有头指针的单循环链表 C. 双链表 D. 仅有头指针的单循环链表13. 在有 n 个结点的二叉链表中,值为非空的链域的个数为( )。A. n-1 B. 2n-1 C. n+1 D. 2n+114. 稀疏矩阵一般的压缩存储方法有两种,即( )。A. 二维数组和三维数组 B. 三元组与散列 C. 三元组与十字链表 D. 散列和十字链表15. 以下不是堆的序列是( )。A. 100, 85, 98, 77, 80, 60, 82, 40, 20, 10, 66B. 100,
5、98, 85, 82, 80, 77, 66, 60, 40, 20, 10C. 10, 20, 40, 60, 66, 77, 80, 82, 85, 98, 100D. 100, 85, 40, 77, 80, 60, 66, 98, 82, 10, 2016. 一个栈的入栈序列是 a, b, c, d, e,则栈的不可能输出序列是( )A. edcba B. decba C. dcead D. abcde二、填空题1. 下面程序段的时间复杂度是_。i = 1;While ( i 最早发生时间最迟发生时间5. 输入一个正整数序列 23, 32, 16, 14, 42, 71, 57, 28
6、, 55, 19, 12, 50 ,(1)构造一棵二叉排序树(只需最后结果图)。(2)画出构造的一棵平衡二叉树(只需最后结果图)。(3)HASH 表表长为 12,HASH 函数为 H ( key ) = key%11,试用线性探测再散列解决冲突的方法构造哈希表。0 1 2 3 4 5 6 7 8 9 10 116. 设待排序的关键字序列为 27, 46, 5, 18, 16, 51, 32, 26 , 分别使用以下排序方法进行排序,写出题目所给定趟数的结果。(1)第三趟直接插入排序的结果。(2)第一趟希尔排序的结果(增量为 3)。(3)第二趟归并排序。(4)第一趟快速排序。四、算法设计题有一个带头结点的单链表 head,其 ElemType 类型为 char,设计一个算法使其元素递增有序。单链表类型定义如下Typedef struct LNode /*定义单链表结点类型*/ElemType data;Struct LNode *next; /*指向后继结点*/LinkList;