数据结构复习题doc.docx

上传人:b****8 文档编号:11349187 上传时间:2023-02-28 格式:DOCX 页数:11 大小:83.10KB
下载 相关 举报
数据结构复习题doc.docx_第1页
第1页 / 共11页
数据结构复习题doc.docx_第2页
第2页 / 共11页
数据结构复习题doc.docx_第3页
第3页 / 共11页
数据结构复习题doc.docx_第4页
第4页 / 共11页
数据结构复习题doc.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据结构复习题doc.docx

《数据结构复习题doc.docx》由会员分享,可在线阅读,更多相关《数据结构复习题doc.docx(11页珍藏版)》请在冰豆网上搜索。

数据结构复习题doc.docx

数据结构复习题doc

一、单项选择题

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

1.数据结构是(  )

  A.一种数据类型

  B.数据的存储结构

  C.一组性质相同的数据元素的集合

  D.相互之间存在一种或多种特定关系的数据元素的集合

2.某带头结点的单链表的头指针为head,判定该链表为非空的条件是()

A.head==NULLB.head->next==NULLC.head!

=NULLD.head->next!

=NULL

3.下列关于线性表的叙述中,不正确的是(    )

A.线性表是n个结点的有穷序列

B.线性表可以为空表

C.线性表的每一个结点有且仅有一个前趋和一个后继

D.线性表结点间的逻辑关系是1:

1的联系

4.设数组A[m]为循环队列Q的存储空间,front为队头指针,rear为队尾指针,则判定Q为满队列的条件是()

A.(rear-front)%m==1B.front==rear

C.(rear-front)%m==m-1D.front==(rear+1)%m

5.假设S=″IAMASTUDENT″,则运算substr(S,4,9)的结果为(B)

A.″MAS″B.″MASTUDE″C.″ASTUDENT″D.″STUD″

6.连通图是指图中任意两个顶点之间()

A.都连通的无向图B.都不连通的无向图

C.都连通的有向图D.都不连通的有向图  

7.从广义表L=(((x),y,x))中分解得到(x)的操作为()

A..tail(tail(head(L)))B.head(tail(head(L)))

C.tail(head(head(L)))Dhead(head(head(L)))

8.假设一棵完全二叉树按层次遍历的顺序依次存放在数组BT[m]中,其中根结点存放在BT[0],若BT[i]中的结点有左孩子,则左孩子存放在(C)

A.BT[i/2]B.BT[2*i-1]C.BT[2*i+1]D.BT[2*i]

 9.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为(   )

  A.f,d,bB.g,c,bC.f,c,bD.g,d,b

10.深度为k的二叉树至多有(  )

A.2k个结点                                B.2k-1个结点

C.2k-1个结点                              D.2k-1-1个结点

  11.若用邻接矩阵表示一个有向图,则其中每一行包含的″1″的个数为(  )

  A.图中每个顶点的入度B.图中每个顶点的出度

C.图中弧的条数D.图中连通分量的数目

12.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(   )

  A.3,2,6,1,4,5B.3,4,2,1,6,5

C.1,2,5,3,4,6D.5,6,4,2,3,1

13.二维数组A[5][6]采用按行为主序的存储方式,每个元素占3个存储单元,若A[0][0]的存储地址是1000,则A[4][3]的存储地址是(    )

A.1081B.1057        A.1027         D.1019

14.图的邻接矩阵表示法适用于表示(   )

  A.无向图B.有向图

  C.稠密图D.稀疏图

  15.设哈希表长m=11,哈希函数H(key)=key%11。

表中已有4个结点:

Addr(15)=4

Addr(38)=5

Addr(61)=6

Addr(84)=7

如用二次探测散列突,关键字为49的结点的地址是()

A.8B.3C.5D.9

16.数据的四种基本逻辑结构是指(    )

A.数组、链表、树、图形结构                  B.线性表、链表、栈队列、数组广义表

C.线性结构、链表、树、图形结构              D.集合、线性结构、树、图形结构

  17.下列关于线性表的叙述中,不正确的是(  )

A.线性表是n个结点的有穷序列

B.线性表可以为空表

C.线性表的每一个结点有且仅有一个前趋和一个后继

D.线性表结点间的逻辑关系是1:

1的联系

  18.在一个单链表中,若p所指结点不是最后结点,则删除p所指结点的后继结点的正确操作是(    )

A.p=p->next                              B.p->next=p->next

C.p->next=p->next->next                    D.p->next=p

18.栈和队列(    )

A.共同之处在于二者都是先进先出的特殊的线性表

B.共同之处在于二者都是先进后出的特殊的线性表

C.共同之处在于二者都只允许在顶端执行删除操作

D.没有共同之处

20.从广义表L=(((d),c,d))中分解得到(d)的操作为(D)

A.head(head(head(L)))B.head(tail(head(L)))

C.tail(head(head(L)))D.tail(tail(head(L)))

21.深度为k的二叉树至多有(    )

A.2k个结点                                B.2k-1个结点

C.2k-1个结点                              D.2k-1-1个结点

  22.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为(   )

  A.图中每个顶点的入度B.图中每个顶点的出度

  C.图中弧的条数D.图中连通分量的数目

 23.在数据结构中,从逻辑上可以把数据结构分成(    )

A.动态结构和静态结构                  B.紧凑结构和非紧凑结构

C.线性结构和非线性结构              D.内部结构和外部结构

  24.算法分析的目的是(   )

  A.辨别数据结构的合理性

  B.评价算法的效率

  C.研究算法中输入与输出的关系

  D.鉴别算法的可读性

  25.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(   )

  A.插入B.删除  C.排序D.定位

 26.按照二叉树的定义,具有3个结点的二叉树有()种。

A.3B.4C.5D.6

27.从广义表L=(((d),c,d))中分解得到(d)的操作为()

A.head(head(head(L)))B.head(tail(head(L)))

C.tail(head(head(L)))D.tail(tail(head(L)))

 28.若进栈序列为X,Y,Z,且进栈和出栈可以穿插进行,则不可能出现的出栈序列为()

  A.X,Y,ZB.Z,Y,XC.X,Z,YD.Z,X,Y

29.按照二叉树的定义,具有3个结点的二叉树有()种形态。

A.3B.4C.5D.6

30.广义表L=((a,b),(c,d))的表尾是()

A.(a,b)B.(c,d)C.c,dD.((c,d))

 31.若用邻接矩阵表示一个有向图,则其中每一行包含的″1″的个数为(  )

  A.图中每个顶点的入度B.图中每个顶点的出度

  C.图中弧的条数D.图中连通分量的数目

32.下面二叉树中,符合完全二叉树定义的是()

33.下面的无向图中存在有()个连通分量。

  A.1B.2C.3D.4

 二、填空题

请在每小题的空格中填上正确答案。

1.下面程序段的时间复杂度为。

s=0;

for(i=0;i

for(j=0;j

s+=a[i][j];

2.已知指针p指向某单链表中的一个结点,则判别该结点为链表的终端结点的条件是______。

3.如果入栈序列是2,4,6,…,198,200,且出栈序列的第一个元素为200,则出栈序列中第30个元素为。

4.已知广义表LS=((b),(a)),则其长度为________,深度为。

5.若某二叉树的先根遍历序列为ACEBD,中根遍历序列为ECADB,则其后根遍历序列为___________

  6.一棵含500个结点的完全二叉树的深度为。

  7.含n个顶点的无向连通图中至少含有______条边。

  8.若以{2,3,4,6,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是____。

9.二叉树的第i层至多有________个结点。

10.在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于______。

  

11.下面程序段的时间复杂度为______。

i=1;k=2;

while(i

{k=k+10*i;

i=i+1;

}

12.已知指针p指向某单链表中的一个结点,则判别该结点有且仅有一个后继结点的条件是________。

13.在完全二叉树结构中,对于编号为n的结点,如果有右孩子结点,则该结点的编号是______。

14.已知广义表LS=((a,b),(c),((d))),则其深度为______。

15.画出二元组G表示的数据结构的逻辑结构图。

G=(K,R),其中

K={a,b,c,d,e,f,g,h}

R={,,,,,,}

16.一棵含500个结点的完全二叉树的深度为______。

  17.含n个顶点的无向连通图中至少含有______条边。

  18.若以{2,4,,6,7,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是_____。

19.一棵二叉树中如果有5个叶子结点,则度为2的结点有______个。

20.在具有n个顶点的无向图中最多存在____________条边。

三、解答题

1.某广义表的表头和表尾均为(x,y,z),画出该广义表的图形表示。

2.有一份电文中共使用5个字符:

a,b,c,d,e,它们出现的频率依次为4,7,5,2,9,试画出对应的哈夫曼树(请按左支树根结点的权小于等于右支树根结点的权的次序构造),并求出每个字符的哈夫曼编码。

3.已知哈希函数为H(key)=key%7,哈希表长度为7(哈希地址空间为0..6),待散列序列为:

(25,48,32,50,68)。

要求:

(1)根据以上条件构造一哈希表,并用线性探测法解决有关地址冲突;

(2)若要用该哈希表查找元素68,给出所需的比较次数。

  4.已知带权图的邻接表如下所示,其中边表结点的结构为:

  

  依此邻接表从顶点A出发进行深度优先遍历。

(1)画出由此得到的深度优先生成树;

  

(2)写出遍历过程中得到的从顶点C到其它各顶点的带权路径及其长度。

  

(1)

(2)

(3)

(4)

(5)

  5.将下列森林转换为一棵二叉树。

6.试用Prim算法构造如下图的最小生成树,要求分步给出构造过程。

(算法从V4开始)

7.计算下列模式串的next[j]函数值:

8.分别用邻接矩阵和十字链表给出下列有向图的存储结构表示。

四、算法设计题

1假设以带头结点的单链表的类型定义如下:

顺序栈类型定义:

 typedef struct {

 SElemType *base;

SElemType *top;

intstacksize;

}SqStack;

试编写出栈、入栈操作算法。

出栈算法功能:

若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR。

入栈算法功能:

插入元素e为新的栈顶元素。

说明,算法中不用考虑栈满的情况。

出栈方法原型:

StatusPop(SqStack&S,SElemType&e);

入栈方法原型:

StatusPush(SqStack&S,SElemTypee);

  

2.假设以带头结点的单链队列的类型定义如下:

单链队列的类型定义:

  typedef struct QNode{

  QElemType data;

  struct QNode *next

  }QNode, *QueuePtr;

Typedefstruct{

QueuePtrfront;//队头指针

QueuePtrrear;//队尾指针

}LinkQueue;

试编写一算法,以完成队列Q的出队操作,即删除队列Q中的头元素,并用e返回其值。

算法结构如下:

StatusDeQueue(LinkQueue&Q,QElemType&e)

{//若队列不空,则删除Q的对头元素,用e返回其值,并返回OK;否则返回ERROR

…….

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1