
五邑大学-数据结构A卷(附参考答案).doc
6页试卷编号命题人: 审核人: 试卷分类(A卷或B卷) A 五邑大学 试卷及参考答案与评分标准学期: 至 学年度 第 1 学期课程: 数据结构 课程代号: 0800310 使用班级: 姓名: 学号: 题号一二三四五六七八九十总分得分得分一、 一、 单项选择题(10小题,每小题2分,共20分)1. 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2,e4,e3,e6,e5,e1,则栈S的容量至少应该是( B )A.2 B.3 C.4 D.62. 由4个叶子结点构造一棵哈夫曼树,该树的总结点数是( D )A.4 B.5 C.6 D.7 具有n个叶子节点的哈夫曼树共有 2n-1 个结点3. 对于长度为m( m>1)的指定序列,通过初始为空的一个栈、一个队列后,错误的叙述是( D )。
A.若入栈和入队列的序列相同,则出栈序列和出队序列可能相同B.若入栈和入队列的序列相同,则出栈序列和出队序列可以互为逆序C.入队序列与出队序列关系为1:1,而入栈序列与出栈序列关系是1: n (n≥1)D.入队序列与出队序列关系为1: n (n≥1),而入栈序列与出栈序列关系是1:1第一句:入队列和出队列的是一样的,要是什么就都是什么,是1:1,一个入队列只可能对应一个出队列第2句:一个入栈序列可能对应多个出站队列1:n4. 在一个单链表HL中,若要删除由指针q所指结点的后继结点,则执行( A )A.p=q->next; q->next=p->next; B.p=q->next; q->next=p;C.p=q->next; p->next=q->next; D.q->next= q->next->next; q->next=q;5. 假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女之间不能相互继承则表示该遗产继承关系的数据结构应该是( B )A.树 B.图 C.线性表 D.集合6. 设数组S[n]作为两个栈S1和S2的存储空间,对任何一个栈只有当S[n]全满时才不能进行进栈操作。
为这两个栈分配空间的最佳方案是( A )A.S1的栈底位置为0,S2的栈底位置为n-1B.S1的栈底位置为0,S2的栈底位置为n/2 C.S1的栈底位置为0,S2的栈底位置为n D.S1的栈底位置为0,S2的栈底位置为17. 下面说法中不正确的是( D )A.对称矩阵只须存放包括主对角线在内的下(或上)三角的元素即可B.对角矩阵只须存放非零元素即可 C.稀疏矩阵中值为零的元素较多,因此可以采用三元组表方法存储 D.稀疏矩阵中大量值为零的元素分布有规律,因此可以采用三元组表方法存储所需空间(行,列,非零元素值)与线性表长度(下标,对应值)成正比8. 为5个使用频率不等的字符设计哈夫曼编码,不可能的方案是( A )A.100,11,10,1,0 B.111,110,10,01,00 C.000,001,010,011,1 D.001,000,01,11,109. 已知一棵二叉树的结点数为n,若该二叉树无度为1的结点,则该二叉树的叶子结点数为( D ) P109 二叉树的性质 A. n B.n-1 C.(n-1)/2 D.(n+1)/2 满二叉树:叶子结点:n0=(n(结点数)+1)/ 2 二叉树:叶子结点:n0 度为2的节点:n2 则:n0=n2+110. 求单源最短路径的迪杰斯特拉(Dijkstra)算法是按( B )的顺序求源点到各顶点的最短路径的。
A.路径长度递减 B.路径长度递增 C.顶点编号递减 D.顶点编号递减得分二、 (8分)试给出下面稀疏矩阵A的三元组表示下标从0开始0210482142333064525157(行数)6(列数)7(非零个数) 前7行:5分 后3行:3分得分三、 (8分)已知一个连通图如图1所示,试给出图的邻接矩阵示意图,若从顶点v1出发对该图进行遍历,分别给出基于存储结构的深度优先遍历的顶点序列和广度优先遍历的顶点序列arc[6][6]= 图1V[6]={v1,v2,v3,v4,v5,v6}DFS: v1 v2 v3 v5 v4 v6BFS: v1 v2 v4 v6 v3 v5 各2分得分四、 (8分) 图2是一个无向网图,请按Kruskal算法,给出求最小生成树的过程 图2解:(a) 初始状态 (b) 边(b,d)加入 (c) 边 (e,f)加入 (d) 边(a,c)加入 (e) 边(b,f)加入 (f) 边(a,b)加入(a)和(d)2分,其余各步个1分得分 五、 (8分)试由权值为 29、12、15、6、23 的五个叶子结点构造一棵哈夫曼树,并求其带权路径长度WPL。
解:写出结果4分,前面4步每步1分得分六、 (8分)已知模式T=”abaabcab”,求其对应的next[0..7]的值next 0 1 2 3 4 5 6 7一个1分得分七、 (8分)为便于存储和处理一般树结构形式的信息,常采用孩子—兄弟表示法将其转换成二叉树(左孩子关系表示父子、右孩子关系表示兄弟),将下图所示的树转换成对应的二叉树是 图3 (a) 加线 (b) 去线 (c) 层次调整直接写出结果4分前2步每步2分得分八、 (8分)已知某二叉树的中序、层序序列分别为DBAFCE、FDEBCA,请构造该二叉树,并给出该二叉树的后序序列评分:二叉树构造:5分,后序遍历序列:3分二叉树如下所示;后序序列:ABDCEF得分九、 (8分)用容量为n的顺序表(n:0~3)表示一个循环队列Q,Q.front为队头元素的前一个位置,Q.rear为队尾元素位置,填写循环队列Q在下列运算中队列头和尾变化的情况。
Q.frontQ.rear初始状态00E1进队(队尾rear+1)01出队(队头rear+1)11E2进队12E3进队13出队23E4进队(循环:01230)20得分十、 算法设计题 (2小题,每小题8分,共16分) 1.设一个二叉树以二叉链表为存储结构,结点结构为:struct node { int data; struct node lchild,rchild;};设计算法按前序遍历次序输出二叉树中的叶子结点 int PreOrder(BiNode *root) //root为根结点{ if(root==NULL) return 0; else { if(root->lchild==NULL && root->rchild==NULL) return 1; else return PreOrder(root->lchild)+PreOrder(root->rchild); }}2.设单链表的结点结构如下:template
int statsNN(Node












