数据结构复习题及答案Word文件下载.docx

上传人:b****5 文档编号:17992459 上传时间:2022-12-12 格式:DOCX 页数:32 大小:204.58KB
下载 相关 举报
数据结构复习题及答案Word文件下载.docx_第1页
第1页 / 共32页
数据结构复习题及答案Word文件下载.docx_第2页
第2页 / 共32页
数据结构复习题及答案Word文件下载.docx_第3页
第3页 / 共32页
数据结构复习题及答案Word文件下载.docx_第4页
第4页 / 共32页
数据结构复习题及答案Word文件下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

数据结构复习题及答案Word文件下载.docx

《数据结构复习题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构复习题及答案Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。

数据结构复习题及答案Word文件下载.docx

A[i][j]=0;

8.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是____。

j<

i;

A[i][j]=0;

9.分析下面算法(程序段),给出最大语句频度,该算法的时间复杂度是____。

s=0;

j++)

for(k=0;

k<

k++)

s=s+B[i][j][k];

sum=s;

10.分析下面算法(程序段)给出最大语句频度,该算法的时间复杂度是____。

i=s=0;

while(s<

n)

{i++;

s+=i;

//s=s+i

}

11.分析下面算法(程序段)给出最大语句频度,该算法的时间复杂度是____。

i=1;

while(i<

=n)

i=i*2;

1.3算法设计题

1.试写一算法,自大到小依次输出顺序读入的三个数X,Y和Z的值.

2.试写一算法,求出n个数据中的最大值。

写出最大语句频度,该算法的时间复杂度。

习题答案

1.11.C,A2.B,D3.C4.C,A5.C,B

1.21.线性结构、树形结构、图形结构,非线性结构

2.没有、1、没有、1

3.前驱、1、后续、任意多个

4.任意多个

5.一对一、一对多、多对多

6.有穷性、确定性、可行性、输入、输出

7.最大语句频度:

n2,时间复杂度:

.O(n2)

8.最大语句频度:

n(n+1)/2,时间复杂度:

9.最大语句频度:

n3,时间复杂度:

.O(n3)

10.最大语句频度:

n

,时间复杂度:

.O(n

11.最大语句频度:

log2n,时间复杂度:

.O(log2n)

 

习题2线性表

2.1单项选择题

1.一个数组(即一批地址连续的存储单元)第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是____。

A.110B.108C.100D.120

2.线性表的顺序存储结构是一种___的存储结构,而链式存储结构是一种___的存储结构。

A.随机存取B.索引存取C.顺序存取D.散列存取

3.线性表的逻辑顺序与存储顺序总是一致的,这种说法___。

A.正确B.不正确

4.线性表若采用链式存储结构时,要求内存中可用存储单元的地址___。

A.必须是连续的B.部分地址必须是连续的

C.一定是不连续的D.连续或不连续都可以

5.在以下的叙述中,正确的是___。

A.线性表的顺序存储结构优于链表存储结构

B.线性表的顺序存储结构适用于频繁插入/删除数据元素的情况

C.线性表的链表存储结构适用于频繁插入/删除数据元素的情况

D.线性表的链表存储结构优于顺序存储结构

6.每种数据结构都具备三个基本运算:

插入、删除和查找,这种说法___。

7.不带头结点的单链表head为空的判定条件是____。

A.head==NULLB.head.next==NULL

C.head.next==headD.head!

=NULL

8.带头结点的单链表head为空的判定条件是____。

9.非空的循环单链表head的尾结点(由p所指向)满足____。

A.p.next==NULLB.p==NULL

C.p.next==headD.p==head

10.在双向循环链表的p所指结点之后插入s所指结点的操作是____。

A.p.right=s;

s.left=p;

p.right.left=s;

s.right=p.right;

B.p.right=s;

C.s.left=p;

p.right=s;

D.s.left=p;

11.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行____。

A.s.next=p.next;

p.next=s;

B.p.next=s.next;

s.next=p;

B.q.next=s;

C.p.next=s;

s.next=q;

12.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行____。

A.s.next=p;

B.s.next=p.next;

C.s.next=p.next;

p=s;

13.在一个单链表中,若删除p所指结点的后续结点,则执行____。

A.p.next=p.next.next;

B.p=p.next;

p.next=p.next.next;

C.p.next=p.next;

D.p=p.next.next;

14.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较____个结点。

A.nB.n/2C.(n-1)/2D.(n+1)/2

15.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是____。

A.O

(1)B.O(n)C.O(n2)D.O(nlog2n)

16.给定有n个元素的数组,建立一个有序单链表的时间复杂度是____。

A.O

(1))B.O(n)C.O(n2)D.O(n*log2n)

2.2填空题(将正确的答案填在相应的空中)

1.单链表可以做____的链接存储表示。

2.在双链表中,每个结点有两个指针域,一个指向______,另一个指向_____。

3.在一个单链表中p所指结点之前插入一个s(值为e)所指结点时,可执行如下操作:

q=head;

while(q.next!

=p)q=q.next;

s=newNode;

s.data=e;

q.next=;

//填空

s.next=;

4.在一个单链表中删除p所指结点的后继结点时,应执行以下操作:

q=p.next;

p.next=____;

delete;

5.在一个单链表中p所指结点之后插入一个s所指结点时,应执行s.next=____和p.next=____的操作。

6.对于一个具有n个结点的单链表,在已知p所指结点后插入一个新结点的时间复杂度是____;

在给定值为x的结点后插入一个新结点的时间复杂度是____。

2.3算法设计题:

1.设顺序表va中的数据元数递增有序。

试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。

StatusInsert_SqList(SqList&

va,intx)

{

if(va.length+1>

maxsize)returnERROR;

va.length++;

for(i=va.length-1;

va.elem[i]>

x&

&

i>

=0;

i--)

va.elem[i+1]=va.elem[i];

va.elem[i+1]=x;

returnOK;

2.试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,….an)逆置为(an,an-1,….,a1)。

voidreverse(inta[],intsize)

{

inti,j,tmp;

for(i=0,j=size-1;

i<

j;

i++,j--)

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

}

3.已知线性表中的元素以值递增有序排列,并以单链表作存储结构。

试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。

voiddel(LinkListL,elemtypea,elemtypeb)

p=L;

q=p.next;

while(q!

=L&

q.data<

a)

p=q;

q=q.next;

}

b)

r=q;

free(r);

if(p!

=q)

p.next=q;

4.试写一算法,实现单链表的就地逆置(要求在原链表上进行)。

voidconverse(NodeL)

Nodep,q;

p=L.next;

q=p.next;

L.next=NULL;

while(p) 

/*对于当前结点p,用头插法将结点p插入到头结点之后*/

p.next=L.next;

L.next=p;

p=q;

q=q.next;

2.11.B2.A,C3.B4.D5.C6.A7.A8.B

9.C10.D11.B12.B13.A14.D15.B16.C

2.21.线性结表2.前驱结点、后继结点

3.s,p4.q.next,q

5.p.next,s6.O

(1),O(n)

习题3栈和队列

3.1单项选择题

1.一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是____。

A.edcbaB.decbaC.dceabD.abcde

2.若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为____。

A.iB.n=iC.n-i+1D.不确定

3.栈结构通常采用的两种存储结构是____。

A.顺序存储结构和链式存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

4.判定一个顺序栈ST(最多元素为m0)为空的条件是____。

A.top!

=0B.top==0C.top!

=m0D.top==m0-1

5.判定一个顺序栈ST(最多元素为m0)为栈满的条件是____。

A.top!

=0B.top==0C.top!

6.栈的特点是____,队列的特点是____。

A.先进先出B.先进后出

7.向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行____。

(不带空的头结点)

A.HS.next=s;

B.s.next=HS.next;

HS.next=s;

C.s.next=HS;

HS=s;

D.s.next=HS;

HS=HS.next;

8.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行____。

(不带空的头结点)

A.x=HS;

B.x=HS.data;

C.HS=HS.next;

x=HS.data;

D.x=HS.data;

9.一个队列的数据入列序列是1,2,3,4,则队列的出队时输出序列是____。

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

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

10.判定一个循环队列QU(最多元素为m0)为空的条件是____。

A.rear-front==m0B.rear-front-1==m0

C.front==rearD.front==rear+1

11.判定一个循环队列QU(最多元素为m0,m0==Maxsize-1)为满队列的条件是____。

A.((rear-front)+Maxsize)%Maxsize==m0

B.rear-front-1==m0C.front==rearD.front==rear+1

12.循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是____。

A.(rear-front+m)%mB.rear-front+1

C.rear-front-1D.rear-front

13.栈和队列的共同点是____。

A.都是先进后出B.都是先进先出

C.只允许在端点处插入和删除元素D.没有共同点

3.2填空题(将正确的答案填在相应的空中)

1.顺序表、栈和队列都是____结构,可以在顺序表的____位置插入和删除元素;

对于栈只能在____插入和删除元素;

对于队列只能在____插入元素和____删除元素。

2.向一个长度为n的顺序表的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动____个元素。

3.向一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动____个元素。

8.在具有n个单元的循环队列中,队满时共有____个元素。

3.11.C2.C3.A4.B5.D6.BA7.C8.B9.C10.C

11.A12.A13.C

3.21.线性、任何、栈顶、队尾、队首2.n-i+13.n-i

4.先移动栈顶指针,后存入元素5.先取出元素,后移动栈顶指针

6.前一个位置7.先移动队首元素,后取出元素

8.n-19.不可能的10.可能的

习题6树和二叉树

6.1单项选择题

*1.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法____。

A.正确B.错误

2.假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为

个。

A.15B.16C.17D.47

3.按照二叉树的定义,具有3个结点的不同形状的二叉树有____种。

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

4.按照二叉树的定义,具有3个不同数据结点的不同的二叉树有____种。

A.5B.6C.30D.32

5.深度为5的二叉树至多有____个结点。

A.16B.32C.31D.10

6.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为____。

A.2hB.2h-1C.2h+1D.h+1

7.对一个满二叉树,m个树叶,n个结点,深度为h,则____。

A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1

8.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序____。

A.不发生改变B.发生改变C.不能确定D.以上都不对

9.如果某二叉树的前根次序遍历结果为stuwv,中序遍历为uwtvs,那么该二叉树的后序为____。

A.uwvtsB.vwutsC.wuvtsD.wutsv

10.二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法____。

A.正确B.错误

11.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是____。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

12.在一非空二叉树的中序遍历序列中,根结点的右边____。

A.只有右子树上的所有结点B.只有右子树上的部分结点

C.只有左子树上的部分结点D.只有左子树上的所有结点

13.如图6.1所示二叉树的中序遍历序列是____。

A.abcdgefB.dfebagcC.dbaefcgD.defbagc

图6.1

14.一棵二叉树如图6.2所示,其中序遍历的序列为____。

A.abdgcefhB.dgbaechfC.gdbehfcaD.abcdefgh

15.设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是。

A.a在b的右方B.a在b的左方

C.a是b的祖先D.a是b的子孙

16.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是____。

A.acbedB.decabC.deabcD.cedba

17.实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用____存储结构。

A.二叉链表B.广义表存储结构C.三叉链表D.顺序存储结构

18.如图6.3所示的4棵二叉树,____不是完全二叉树。

6.2填空题(将正确的答案填在相应的空中)

1.有一棵树如图6.5所示,回答下面的问题:

⑴这棵树的根结点是____;

⑵这棵树的叶子结点是____;

⑶结点k3的度是____;

⑷这棵树的度是____;

⑸这棵树的深度是____;

⑹结点k3的子女是____;

图6.5一棵树

⑺结点k3的父结点是____;

2.指出树和二叉树的三个主要差别____、____、____。

3.从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是____。

4.一棵二叉树的结点数据采用顺序存储结构,存储于数组t中,如图6.6所示,则该二叉树的链接表示形式为____。

5.深度为k的完全二叉树至少有____个结点。

至多有____个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是____。

6.在一棵二叉树中,度为零的结点的个数为n0,度为2的结点的个数为n2,则有n0=____。

7.一棵二叉树的第i(i≥1)层最多有____个结点;

一棵有n(n>

0)个结点的满二叉树共有____个叶子和____个非终端结点。

8.结点最少的树为____,结点最少的二叉树为____。

9.现有按中序遍历二叉树的结果为abc,问有____种不同形态的二叉树可以得到这一遍历结果,这些二叉树分别是____。

10.由如图6.7所示的二叉树,回答以下问题:

⑴其中序遍历序列为____;

⑵其前序遍历序列为____;

⑶其后序遍历序列为____;

6.3简答题

1.根据二叉树的定义,具有三个结点的二叉树有5种不同的形态,请将它们分别画出。

2.假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。

请画出该树。

3.由如图6.7所示的二叉树,回答以下问题:

(1)画出该二叉树的中序线索二叉树;

(2)画出该二叉树的后序线索二叉树;

(3)画出该二叉树对应的森林。

4.已知一棵树如图6.8所示,转化为一棵二叉树,表示为____。

5.以数据集{4,5,6,7,10,12,18}为结点权值,画出构造Huffman树的每一步图示,计算其带权路径长度为。

6.一棵含有N个结点的k叉树,可能达到的最大深度和最小深度各为多少?

7.证明:

一棵满k叉树上的叶子结点数n

和非叶子结点数n

之间满足以下关系:

n

=(k-1)n

+1

6.4算法设计题

1.编写按层次顺序(同一层自左至右)遍历二叉树的算法。

2.试编写算法,对一棵二叉树,统计叶子的个数。

3.试编写算法,对一棵二叉树根结点不变,将左、右子树进行交换,树中每个结点的左、右子树进行交换。

7.假设用于通讯的电文仅有八个字母(a,b,c,d,e,f,g,h)组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。

试为这八个字母设计哈夫曼编码。

使用0-7的二进制表示形式是另一种编码方案。

对于上述实例,比较两种方案的优缺点。

8.试编写算法,对一棵以孩子-兄弟链表表示的树统计叶子的个数。

假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。

6.11.B2.B3.C4.C5.C6.

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

当前位置:首页 > 农林牧渔 > 农学

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

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