编号:0025 座位号:
 17-18学年第1学期期末考试
 数据结构 试题
一、选择题:(每题4分,共20分)
1.假定一个顺序队列的队首和队尾指针分别为front和rear,存放该队列的数组长度为N,则判断队空的条件为________。
 A.(front+1)% N == rear
 B.(rear+1)% N == front
 C. front == 0
 D. front == rear
2.对于一棵具有n个结点的树,该树中所有结点的度数之和为_______。
 A.n   B.n+1 
 C.n-1 D.2n
3.由权值分别为3,9,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为__。
 A.24      B.55    
 C.72     D.53
4.根据下列二叉树遍历的结果为A,B,C,D,E,F,G,则此遍历为__。
   A         A.前序
     B    E       B.中序
   C   D    F     C.后序
          G       D.层次
5.每次通过相邻元素之间的比较和交换使较小的元素逐渐从底部移向顶部,此种排序方法叫做___排序。
 A.直接插入    B.直接选择   
 C.气泡    D.堆排序
二、填空题:(每空2分,共20分)
1.在循环双向链表中表头结点的左指针域指向________结点,表尾结点的右指针域指向________结点。
2.在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的_______、_______和________三项。
3.在线性表的散列存储中,处理冲突有_______和_______两种方法。
4.对于一个具有n个顶点和e条边的有向图和无向图,若采用边集数组表示,则存于数组中的边数分别为_______和________。
5.假定一组记录的排序码为(46,79,56,38,40,84),对其进行归并排序的过程中,第二趟归并结果为__________________________。
三、问答题:(共40分)
已知一个图的顶点集V和边集G分别为:
 V={0,1,2,3,4,5,6,7}
 E={(0,1)8, (0,2)5, (0,3)2, (1,5)6, (2,3)25, (2,4)13, (3,5)9, (3,6)10, (4,6)4, (5,7)20}
 求该图的最小生成树的权。(20分)
最小生成树的权为:____________________
2.已知一组元素的排序码为(36,25,48,12,65,20),写出用直接选择排序法每次选择和交换后的排列结果。(20分)
四、阅读算法,写出执行后的结果
 (共20分)
Stack S;
 InitStack(S);
 Push(S,3);
 Push(S,4);
 Push(S,5);
 int x=Pop(S)+2*Pop(S);
 Push(S,x);
 int i,a[4]={5,8,12,15};
 for (i=0;i<4;i++) Push(S,a[i]);
 while(!StackEmpty(S)) cout<<Pop(S)<<’’;
结果为:_________________________________。