《数据结构概论》期末试卷 一、单项选择题 (每小题2分,共30分) 1.查找n个元素的有序表时,最有效的查找方法是( C ) A.顺序查找 B.分块查找 C.折半查找 D.二叉排序树查找 2.具有12个关键字的有序表,查找成功时折半查找的平均查找长度是( A ) A.3.1 B.4 C.2.5 D.5 3.在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是( B ) A.O(1) B.O(n) 2 C.O(nlogn) D.O(n) 4.对平均性能而言,以下最好的内排序方法是( D )。 A.冒泡排序 B.希尔排序 C.交换排序 D.快速排序 5.链栈与顺序栈相比,比较明显的优点是( D ) A.插入操作更加方便 B.删除操作更加方便 C.不会出现下溢的情况 D.不会出现上溢的情况 6.二叉树中第5层上的结点个数最多为( C ) A.8 B.15 C.16 D.32 7.以下数据结构中,( A )是非线性数据结构。 A.树 B.字符串 C.队 D.栈 8.一个向量的第一个元素的地址是100,每个元素的长度是2 ,则第五个元素的地址是( B )。 A.102 B.110 C.108 D.120 9.已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是( B ) 1 第 福建师范大学试卷纸 1 页 共 5 页
A. 0 3 2 1 B. 0 1 2 3 C. 0 1 3 2 D.0 3 1 2 (第9题配图:数组的下标为0,1,2,3) 10.对于哈希函数H(key)=key,被称为同义词的关键字是( D ) A.35和41 B.23和39 C.15和44 D.25和51 11.有一个有序表为{ 1,3,9,12,32,41,45,62,77,88,92,100},用折半查找法,若要找63,要经过( C )次与63比较。 A.12 B.6 C.4 D.5 12.下述几种排序方法中,稳定的排序算法是( A ) A.直接插入排序 B.快速排序 C.堆排序 D.希尔排序 13.具有n个顶点的无向图至少要有( C )条边才能确保是一个连通图。 A.n(n+1) B.n-1 C.n+1 D.n(n-1) 14.二叉树是非线性数据结构,所以 ( C ) A.它不能用顺序存储结构存储 B.它不能用链式存储结构存储 C.顺序存储结构和链式存储结构都能存储 D.顺序存储结构和链式存储结构都不能使用 15.有8个结点的无向图最多有( C )条边。 A.14 B.28 C.56 D.112 二、填空题(每小题2分,共30分) 1. 下面程序段的时间复杂度为____0(n)____。 sum=1; for(i=0;sum 2. 设数组a[M](M为最大空间个数)作为循环队列Q的存储空间,front为队头指针(指向第一个存放数据的位置),rear为队尾指针(指向最后一个存放数据位置的下一个),则判定Q队列的队满条件是___front= =(rear+1)%m______。 3. 若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是__ FEGHDCB __。 4. 散列法存储的基本思想是由_____关键码的值____决定数据的存储地址。 5. 在一棵度为3的树中,度为2的结点个数是1,度为0的结点个数是6,则度为3的结点个数是____6____。 6. 设一棵完全二叉树有700个结点,则共有______1______个叶子结点 。 7. n个顶点e条边的图采用邻接矩阵存储,深度优先遍历算法的时间复杂度为_______1________;若采用邻接表存储时,该算法的时间复杂度为_____2_________ 。 8. 在堆排序和快速排序中,若初始记录接近正序或反序,则选用_____堆排序_______;若初始记录基本无序,则最好选用____快速排序_____。 9. 若要求一个稀疏图G的最小生成树,最好用______克鲁斯卡尔(Kruskal)____ 算法来求解。 10. 一棵深度为6的满二叉树有 ____31_____ 个分支结点和______9____个叶子。 11.用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度是__(1+2)*3+(4+5+3)*2=33_____。 12. 有向图G用邻接矩阵存储,其第i行的所有元素之和等于顶点i的_______(1)_____。 三、解答题(每小题9分,共27分) 1. 已知以下的有向图,用Dijkstra算法求出从顶点1出发到各顶点的最短路径(按步给分)。 3 第 福建师范大学试卷纸 3 页 共 5 页