视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据结构期末试题与答案
2025-09-25 14:21:51 责编:小OO
文档
仲 恺 农 业 工 程 学 院 试 卷

(答案及评分标准)

《数据结构与算法》 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

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指针都等于头结点的地址 。

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&&j        p=p->next; ++j;

    }

if(!p||j>i)return ERROR;

e=p->data;

    return OK;

}

四、给出单链队列的存储结构(数据类型名为LinkQueue),下面是入队函数,但有缺漏,请补全(说明在哪一行补什么内容)。(10分)

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;

}TrTNode,*TrTree;

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

a:11

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;

这个结构主要适用于存贮无向图下载本文

显示全文
专题