1、桂林电子科技大学2017年硕士研究生统一入学考试试题科目代码:910科目名称:数据结构A卷注意:答案必须全部写在答题纸上,写在试题上无效;答案要标注题号,答题纸要填写姓名和考号,并标注页码与总页数;交卷时,将答题纸与试题一起装入试卷袋,密封签字。一、 选择题(20分,共10小题,每小题2分)1. 设数据结构B=,其中K=a,b,c,d,R=,, ,则B是( )。A线性结构 B树型结构 C图型结构 D索引结构2. 若线性表最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则下面最适合的存储结构是( )。 A带头指针的单链表 B带头指针的双链表 C带头指针的单循环链表 D带尾指针的单循
2、环链表3.图1中,(a)是结点结构,(b)是双向链表片段,若要删除(b)中p指针指向结点的后继结点,则正确的操作是( )。图1 双向链表Ap-rlink-data=p-data; p-llink-rlink=p-rlink; p-rlink-llink=p-llink; free(p);Bp-rlink-data=p-data; p-rlink=p-rlink-llink; p-rlink-rlink-llink=p; free(p);Cp-rlink=p-rlink-llink; p-rlink-rlink-llink=p; free(p-rlink);Dp-rlink-rlink-llin
3、k=p; p-rlink=p-rlink-llink; free(p-rlink);4. 设栈S和队列Q的初始状态为空,元素a,b,c,d ,e,f依次进栈,一个元素出栈后即进入队列Q。如果6个元素出队列的顺序是b,d,c,f,e,a,则栈S的容量至少应该是( )。 A2B3C4D55给定有序表 16,23,32,45,51,62,73,79,80 ,若采用二分检索法查找关键码值为62的数据元素,( )次比较后查找成功。A1 B2 C3 D46. 给定一棵具有n个结点的二叉树,在不违背二叉树定义以及不改变根结点的基础上,向二叉树中任意一个可插入结点的位置插入一个新的结点,则生成的新二叉树有(
4、)。种可能。 An-1BnCn+1D2n7. 下列排序方法中,哪一种方法的比较次数与记录的初始排列状态无关?( ) A、直接插入排序 B、冒泡排序 C、快速排序 D、直接选择排序8. 若让一个具有n个顶点的有向图是强连通图,则至少需要( )条狐。 An Bn+1 C2n Dn(n-1)9对任何一棵非空二叉树T,设N0、N1和N2分别是度数为0、1、2的结点数,则下列等式中成立的是( )。A. N0=N1+1 B. N0=N1+N2 C. N0=N2+1 D. N0=2N2+110对二叉排序树进行( )遍历可将其元素进行升序排序。A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 不确定二、请
5、给出下面算法的功能描述(10分)struct Node;typedef struct Node* PNode;struct Node DataType info; PNode link;typedef struct Node * LinkList;int Test(LinkList list, DataType value) LinkList first=list; while( ( first!=null ) & (first-link!=null) LinkList tmp=first-link;if ( tmp-info=value ) first-link=tmp-link; free
6、 tmp; else first=first-link;三、设哈希函数 H(k)=(3 * k) mod 11 ,散列地址空间为 010。给定关键字序列(35,13,49,24,62,21,14,81,12)。(共10分)(1)若采用拉链法解决冲突,请构造哈希表。(6分)(2) 请基于(1)的结果,给出等概率情况下查找成功时的平均查找长度。(4分)四、请证明:任意一棵具有N个结点的满二叉树(N0)的叶子结点数目为(N+1)/2。(10分)五、给出一组排序码:56,32,65,24,16,9,43,39,若对其进行堆排序(按升序排列):(共10分)(1)请给出构建的大根堆(6分)(2)请给出前3
7、趟堆排序,每一趟排序后堆的结果。(4分)六、设一数列的输入顺序为12345,若采用栈结构,并以A 和D 分别表示入栈和出栈操作,试问:能否得到下面的输出顺序,如果能,给出合法的入栈和出栈的操作顺序;如果不能解释为什么。(共10分)(1) 能否得到输出顺序为32514 的序列。(5分)(2) 能否得到输出顺序为42135 的序列。(5分)七、已知一棵二叉树的先根序列(A,B,D,E,C,F,G)和中根序列(D,B,E,A,F,G,C)(共10分)(1)画出这棵二叉树。(5分)(2)将(1)得到的二叉树转换为树林。(5分)八、已知元素个数为11的字典,其关键码集合为10、18、3、4、9、13、1
8、5、2、21、7、8,试按元素的次序依次插入一棵初始为空的二叉排序树,请画出插入完成之后的二叉排序树。 (10分)九、有一份电文中共使用8个字符:a、b、c、d、e、f、g、h,它们出现的频率是5, 29, 7, 8, 14, 23, 3, 11 (共15分)(1)试画出对应的哈夫曼树;(5分)(2)每个字符的哈夫曼编码;(5分)(3)求带权外部路径长度(WPL)。(5分)十、已知一个带权图G的顶点集V和边集E分别为: V = v1,v2,v3,v4,v5,E =(v1,v2),(v1,v3),(v1,v4),(v2,v4),(v2,v5),(v3,v4),(v4,v5) ,E中各边对应的权值
9、如下:(v1,v2):3, (v1,v3):10, (v1,v4):7, (v2,v4):5,(v2,v5):7, (v3,v4):9, (v4,v5):15请完成: (共15分)(1)画出图G;(3分)(2)画出图G的邻接表表示;(3分)(3)写出从顶点v1出发进行深度优先搜索(DFS)产生的深度优先生成树;(4分)(4)从顶点v1开始,用Prim算法构造图G的一棵最小生成树,并画出生成过程(5分)十一、算法设计题(15分)拟采用带头结点的单链表来存储线性表中的数据元素,但要求单链表中数据元素的存储顺序与线性表中数据元素的顺序逆序。即若线性表中的数据元素序列是a1,a2, an-1,an,则实现的单链表的数据元素的序列是an,an-1, ,a2,a1(请见图2)。图2 逆序建单链表示意图十二二叉树结点的平衡因子(bf)定义为该结点的左子树高度与右子树高度之差。设二叉树结点结构为:(lchild,data,bf,rchild),lchild,rchild 是左右儿子指针;data 是数据元素;bf 是平衡因子,编写递归算法计算二叉树中各个结点的平衡因子。(15分)第 5 页 共 5 页