您好,欢迎来到九壹网。
搜索
您的当前位置:首页数据结构期末试题与答案

数据结构期末试题与答案

来源:九壹网
 仲 恺 农 业 工 程 学 院 试 卷 (答案及评分标准) 《数据结构与算法》 2011至 2012 学年度第 2 学期期 末 (A)卷 专业班级 姓名 学号 题 号 一 二 三 四 五 六 七 八 合计 得 分 评卷人 (考生注意:考试时间为120分钟。答案须写在答题纸上,并注明题号,考试结束后将试卷连同答题纸一齐交) 一、选择题(每小题选出一个最合适的答案,共30分) 1、在以单链表为存储结构的线性表中,数据元素之间的逻辑关系用( C ) A.数据元素的相邻地址表示 B.数据元素在表中的序号表示 C.指向后继元素的指针表示 D.数据元素的值表示 2、线性表采用链式存储时,结点的存储地址( B ) A.必须是不连续的 B.连续与否均可 C.必须是连续的 D.和头结点的存储地址相连续 3、设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为( D ) A.front=front+1 B.front=(front+1)%(m-1) C.front=(front-1)%m 第 1 页,共 6 页

D.front=(front+1)%m 4、设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为多少( C ) A.1 B.2 C.3 D.4 5、栈和队列都是( A ) A.存取位置的线性结构 B.顺序存储的线性结构C.链式存储的线性结构D.存取位置的非线性结构 6、现有一“遗传”关系:设x是y的父亲,则x可以把它的属性遗传给y。表示该遗传关系最适合的数据结构为( B ) A.线性表 B.树 C.图 D.二叉树 7、下列陈述中正确的是( D ) A.二叉树是度为2的有序树 B.二叉树中结点只有一个孩子时无左右之分 C.二叉树中必有度为2的结点 D.二叉树中最多只有两棵子树,并且有左右之分 8、在具有n个叶子结点的严格二叉树(即结点的度要么是0要么是2)中,结点总数为( C ) A.2n+1 B.2n C.2n-1 D.2n-2 9、N个顶点的有向完全图中含有有向边的数目最多为( D ) A.N-1 B.N C.N(N-1)/2 D.N(N-1) 10、在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( D ) A.e B.2e C.n2-e D.n2-2e 二、填空题(每小题4分,共20分) 1、栈顶的位置是随着 进栈和出栈 操作(栈操作)而变化的。 2、对于单链表形式的队列,其空队列的front指针和rear指针都等于头结点的地址 。 第 2 页,共 6 页

3、n个记录的折半查找,若查找失败,进行了 [log2n]+1 次比较。 4、从顺序表中删除一个元素时,表中所有在被删元素之后的元素均需 向前移动 一个位置。 5、在队列中,允许进行插入操作的一端称为 队尾 ,允许进行删除操作的一端称为 队头 。 三、给出线性表的单链表存储结构,并实现用e返回线性表中第i个元素的值(即编写完整的函数GetElem(L,i,e),这里只给出函数的名称和参数名,未给出类型)。(10分) typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList; Status GetElem(LinkList L,int i,ElemType &e){ LinkList p; int j; p=L->next; j=1; while(p&&ji)return ERROR; e=p->data; return OK; } 四、给出单链队列的存储结构(数据类型名为LinkQueue),下面是入队函数,但有缺漏,请补全(说明在哪一行补什么内容)。(10分) 第 3 页,共 6 页 p=p->next; ++j;

Status EnQueue(LinkQueue Q,e) {p=new QNode; if(!p) return 0; p—>data=e; Q.rear—>=p; return 1;} typedef struct QNode{ QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct{ QueuePtr front; QueuePtr rear; }LinkQueue; Status EnQueue(LinkQueue &Q,QElemType e){ QueuePtr p; p=new QNode; if(!p) return 0; p->data=e; p->next=NULL; Q.rear->next=p; Q.rear=p; return 1; } 五、给出二叉树的三叉存储结构,若二叉树后序遍历的序列为BDECA,请画出该二叉树。(10分) typedef struct TrTNode{ TElemType data; struct TrTNode *lchild,*rchild,*parent; 第 4 页,共 6 页

}TrTNode,*TrTree; 六、假设通信电文使用的字符集为{a,b,c,d,e,f},名字符在电文中出现的频度分别为:34,5,12,23,8,18,试为这6个字符设计哈夫曼编码。请先画出你所构造的哈夫曼树(要求树中左孩子结点的权值小于右孩子结点的权值),然后分别写出每个字符对应的编码。(10分) a:11 第 5 页,共 6 页

b:1010 c:100 d:01 e:1011 f:00 七、给出图的邻接多重表的存储结构,并说明其主要适用于存储何种图。(10分) typedef struct EBox{ VisitIf mark; int ivex,jvex; struct EBox *ilink,*jlink; InfoType *info; }EBox; typedef struct VexBox{ VertexType data; EBox *firstedge; }VexBox; typedef struct VexBox{ VexBox adjmulist[Max_VERTEX_NUM]; int vexnum,edgenum; }AMLGraph; 这个结构主要适用于存贮无向图 第 6 页,共 6 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务