数据结构复习题doc.docx
- 文档编号:11349187
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:11
- 大小:83.10KB
数据结构复习题doc.docx
《数据结构复习题doc.docx》由会员分享,可在线阅读,更多相关《数据结构复习题doc.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构复习题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} 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 ……. }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 复习题 doc