数据结构习题.docx

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

数据结构习题.docx

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

数据结构习题.docx

数据结构习题

单项选择题

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

for(inti=0;i

for(intj=0;j

a[i][j]=i*j;

D.O(m+n)

A.O(m2)B.O(n2)C.O(m*n)

2.设有一个递归算法如下

intfact(intn){//n大于等于0if(n<=0)return1;elsereturnn*fact(--n);

}

则计算fact(n)需要调用该函数的次数为(D)次,不计fact(n)。

A.nB.n+1

3.评价排序算法好坏的标准主要是A.执行时间

C•算法本身的复杂度

C.n+2D.n-l

(D)。

B•辅助空间

D•执行时间和所需的辅助空间

4.

在需要经常查找结点的前驱与后继的场合中,使用(B)比较合适。

5.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行(C)。

A.p=q->next;p->next=q->next;

B.p=q->next;q->next=p;

C.p=q->next;q->next=p->next;

D.q->next=q->next->next;q->next=q;

8.若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是

(A)。

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

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

9.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空

的条件为(D)。

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

C.rear!

=NULL

栈和队列都是(C)。

A.链式存储的线性结构

C.限制存取位置的线性结构对于给定的结点序列abcdef,栈的操作,能得到的序列为(

D.front==rear

B.顺序存储的线性结构

D•限制存取位置的非线性结构规定进栈只能从序列的左端开始。

通过

A)。

A.abcfedB.cabfedC.abcfdeD.cbafde

队列通常米用两种存储结构是(A)。

A.顺序存储结构和链表存储结构B.散列方式和索引方式

C.链表存储结构和数组D.线性存储结构和非线性存储结构

若让元素1,2,3依次进栈,则出栈次序不可能出现(C)种情况。

A.3,2,1B.2,1,3C.3,1,2D.1,3,2若一个串非空,子串的定位操作通常称为(C)。

A.串的长度B.原串的子串C.串的模式匹配D.串的连接

设有一个nxn的对称矩阵A,将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中(C)处。

A.(i+3)*i/2B.(i+1)*i/2C.(2n-i+1)*i/2D.(2n-i-1)*i/2在(C)运算中,使用顺序表比链表好。

A.插入B.删除C.根据序号查找D.根据元素值查找

带头结点的单链表head为空的判断条件是(C)。

C.head->next=headD.head!

=NULL

设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用

(C)最节省时间。

A)单链表B)循环链单表C)带尾指针的循环链单表D)带头结点

的双循环链表

栈的插入与删除操作在(A)进行。

A.栈顶B.栈底C.任意位置D.指定位置

设一个栈的输入序列为A、B、C、D,则借助一个栈所能得到的输出

序列不可能是(D)。

A.ABCDB.DCBAC.ACDBD.DABC

在一个链队中,假设F和R分别是队首和队尾指针,则删除一个结点

的运算是(C)。

A.R=F->next;B.R=R->next;C.F=F->next;D.F=R->next;串是一种特殊的线性表,其特殊性体现在(B)。

A.可以顺序存储B.数据元素是一个字符

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

C•可以链接存储以下说法正确的是(C)。

A)空串与空格串是相同的

C)空串是零个字符组成的串

若n为主串长,m为子串长

A左子树的最右下结点

C左子树的最左下结点按照二叉树的定义,具有

D.数据元素可以是多个字符

B)“fox”是"FoxBase”的子串

D)空串长度等于1

m

下,需要比较字符总数是(C)。

A.mB.m(n-m+1)C.n*mD.(n-m)*(m-1)

将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1..298]

中,A中元素A[66,65]在B数组中的位置k为(B)。

A)198B)195C)197

一个稀疏矩阵的转置矩阵应是(B)。

A.下三角矩阵B•稀疏矩阵C.非稀疏矩阵D•有时为稀疏矩阵

广义表((e))的表头是(C)。

A)eB)()C)(e)D)((e))

深度为5的二叉树至多有(C)个结点。

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

具有10个叶子结点的二叉树中有(B)个度为2的结点。

A.8B.9C.10D.11

在二叉树的中序遍历递归算法中,顺着搜索路径,在第(B)次经过结

点时作访问操作。

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

在中序线索二叉树中,若某结点有右孩子,则该结点的直接后继是

B右子树的最右下结点

D右子树的最左下结点

3个结点的二叉树有(C)种形态。

B.4C.5

B.高度等于其结点数

D.任一结点无右孩子

(D)次序遍历。

C.后根D.层次

(B)。

B.n条有向边

D.n(n-1)条有向边

B)。

二叉树。

A.空或只有一个结点

C.任一结点无左孩子图的广度优先搜索类似于树的

A.先根B.中根

n个顶点的强连通图中至少含有

A.n-l条有向边

C.n(n-1)/2条有向边

任何一个无向连通图的最小生成树

A•只有一棵B•有一棵或多棵C.一定有多棵D.可能不存在

37.设G1=(V1,E1)和G2=(V2,E2)为两个图,如果V2包含V1,E2包含E1,则称(A)。

A•G1是G2的子图B.G1是G2的连通分量

C.G2是G1的连通分量D.G2是G1的子图

38.下面关于图的存储的叙述中,哪一个是正确的。

(A)

A•用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,与

边数无关

B•用邻接矩阵法存储图,占用的存储空间数只与图中边数有关,与结点

个数无关

C•用邻接表存储图,占用的存储空间数只与图中结点个数有关,与边

数无关

D•用邻接表存储图,占用的存储空间数只与图中边数有关,与结点个

数无关

39.(D)适合用邻接表表示。

A.稠密图B.有向完全图

C•无向完全图D•稀疏图

40.一般,图的DFS生成树的高度(C)BFS生成树的高度。

A•小于B•等于C大于D•小于或等于

41.从一棵二叉排序树中查找一个元素时,其平均时间复杂度为(C)。

A•0

(1)B•0(n)C•O(1og2n)D•0(n2)

42.二分查找法要求查找表中各元素的键值必须是(A)排列。

A・递增或递减B•递增C•递减D・无序

43.向具有n个结点的、结构均衡的二叉排序树中插入一个元素的时间复杂度为(B)。

A•O

(1)B•O(log2n)C•O(n)D•O(nlog2n)

44.线性表必须是(D),才能进行二分查找。

A・用向量存储的线性表B•用链表存储的有序表

C•用链表存储的线性表D•用向量存储的有序表

45.按照不同的顺序输入4,5,6三个关键字,能建立(B)棵不同的二

叉排序树。

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

46.在一棵m阶B-树中,若在某结点中插入一个新关键字而引起该结点的

分裂,则该结点中原有(D)个关键字。

A)m/2B)m/2-1C)mD)m-1E)m/2F)m/2-1

47.设有5000个无序的元素,希望用最快的速度挑选出其中前50个最大

的元素,最好选用(C)法。

A.冒泡排序B.快速排序

C.堆排序D•基数排序

48.下列序列中(B)是执行第一趟快速排序后得到的序列(排序的关键字类型是字符串)。

A.[da,ax,eb,de,bb]ff[ba,gc]B.[cd,eb,ax,da,bb]ff[ha,gc]

C.[gc,ax,cb,cd,bb]ff[da,ba]D.[ax,bb,cd,da]ff[eb,gc,ba]

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

A.0

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

50.以下排序方法中,稳定的排序方法是(B)。

A.直接插入排序和希尔排序B.直接插入排序和冒泡排序

C.希尔排序和快速排序D.冒泡排序和快速排序

51.在快速排序中,每次划分选择的基准元素为该区间的(D)时,得到的

两个子区间是均匀的。

A.最大值B.最小值C.任意值D.中间值

52.若从二叉树的任一结点出发到根的路径上所经过的结点序列按关键字

有序,则该二叉树是下列树中的哪种?

(C)

A.二叉排序树B.哈夫曼树C.堆。

二、填空题

1.在一个长度为n的顺序表中删除第i个元素,要移动__n-_个元素。

2.在顺序表中插入或删除一个元素,需要平均移动表长的一半元

素,具体移动元素的个数与元素所在的位置有关。

3.若线性表采用顺序存储结构存放,那么在长度为n的线性表中删除第i

(1

线性表中第i(1wiwn)个数据元素之前插入一个新的数据元素需要移动n-i+1个数据元素。

4.在非空的单循环链表h中,某个结点p为尾结点的条件是

p_>next=h。

5.一个队列的入队序列是a、b、c、d,则队列的输出序列为abed。

6.栈结构通常采用的两种存储结构是顺序栈和链栈—。

7.设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过栈

S,一个元素出栈后即进入队列Q。

若这6个元素出队列的顺序是b、d、

c、f、e、a,则栈S的容量至少应该是—。

8.设有一个nxn的对称矩阵A将其上三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么第i行的对角元素A[i][i]存放于B中(2n-i+1)*i/2处。

9.设有5对角矩阵A=(aij)20*20,按特殊矩阵压缩存储的方式将其5条对

角线上的元素存于数组B[0:

m]中,计算元素A[10,10]的存储位置

44。

10.已知广义表L=(a,((),b),((e))),利用取表头和取表尾的操作分离出原子e的运算是GetHead(GetHead(GetHead(GetTail(GetTail(L)))))。

11.设广义表B=((),(a,(b,c)),(e,f),()),表头为_(J,表

尾为(a,(b,c)),(e,f),()。

12.在空串和空格串中,长度不为0的是「空格串-。

13.有n个结点的二叉链表中,其中空的指针域为n+1.指向孩子的指针个

数为__n-1o

14.中缀算术表达式5+6/(23-(6+15))*8所对应的后缀算术表达式为

__5,6,23,6,15,+,-,/,8,*,+。

15•假定一棵二叉树的结点个数为50,则它的最小深度为___6___,最大深

度为50.o

16.一棵树的后根序列与其转换的二叉树的中序列相同,先根序列

与其转换的二叉树的先序列相同。

17.具有400个结点的完全二叉树的深度为9o

18.一棵二叉树有67个结点,这些结点的度要么是0,要么是2。

这棵二

叉树中度为2的结点有__33___个。

19.已知森林的先序访问序列为ABCDEFGHIJKL;中序访问序列为

CBEFDGAJIKLH。

则该森林有__2__棵树。

20.当对字符集进行编码时,字符集中任一字符的编码都不是其他字符的

编码的前缀,这种编码称―二进制前缀编码o

21.高度为h的二叉树只有度为0和2的结点,则此类二叉树的结点数至

少为2h-1+1个结点,至多为2h-1个结点。

22.深度为k的完全二叉树至少有f个结点,至多有2k-1个结点。

23.一个有30个结点的完全二叉树有15个叶子结点;有14个度

为2的结点。

24.高度为i(i>1)的完全二叉树按自上而下,从左到右的次序给结点编号

(从1开始),则可能的编号最小的叶子结点的编号为2k-2+1o

25.设图G=(V,E),V={1,2,3,4},E={,<1,3>,<2,4>,

<3,4>},从顶点1出发,对图G进行广度优先搜索的序列有_2—种。

26.有向图G用邻接矩阵A[1..n,1..n]存储,矩阵中元素值1代表有弧,0

代表无弧,其第i行的所有元素之和等于顶点i的出度—度。

27.一个连通图的生成树是该图的极小连通子图。

若这个连通图有n

个顶点,则它的生成树有条边。

28.n个顶点的无向连通图的邻接矩阵中至少有__2(n-1)—个非零元素,至

多有_n(n-1)_个非零元素。

29.PRIM算法与图的边数无关,适合求解稠密图的最小生成树。

30.一棵3阶B-树中每个结点最多有3棵子树,每个结点最多有_2

个关键字。

含有9个叶子结点的3阶B-树至少有4_个非叶结点,至多有_7_个非叶结点。

31.从有序表(12,18,30,43,56,78,82,95)中依次二分查找43和56

元素时,其查找长度分别为__1___和__3__o

32.向一棵二叉排序树中插入一个元素时,若元素的值小于根结点的值,则应把它插入到根结点的—左子树上。

33.分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态递

增序列按递增顺序排序,最省时间的是算法插入排序,最费时间

的是算法快速排序。

三、简答及图示说明题

1.广义表的基本概念,如A=((a,b),c,(d,e,f)),用GetGead和GetTail操作

取元素d

2.根据给定二叉树的先序和中序序列,构造二叉树

3.根据给定树的先序和后序序列,构造树

4.已知二叉树,画出中序的线索。

5.森林和二叉树的相互转换

6.有7个带权结点,其权值分别为3,7,8,2,6,10,14,试以它们为

叶子结点生成一棵哈夫曼树,画出相应的哈夫曼树(左子树根结点的权

小于等于右子树根结点的权),并写出哈夫曼编码,计算带权路径长度。

7.给出图的顶点集合和边的集合,能画出图的邻接矩阵、邻接表,或者

给出图的存储结构,能够画出对应的图

8.用普里姆(prim)算法或克鲁斯卡尔(Kruskal)算法构造最小生成树。

9.从某个顶点出发,画出图的深度优先生成树和广度优先生成树。

10.设图G=(V,E),V={1,2,3,4,5,6},E={<1,2>,<1,3>,<2,5>,<3,6>,<6,5>,<5,4>,<6,4>}。

请写出图G中顶点的所有拓扑序列。

11.已知一个图的顶点集V和边集G分别为:

V={0,1,2,3,4,5,6,7};G={(0,1)3,(0,3)5,(0,5)18,(1,3)7,(1,4)6,(2,4)10,(2,7)20,(3,5)15,(3,6)12,(4,6)8,(4,7)12};

按照普里姆算法从顶点2出发得到最小生成树,试写出在最小生成树

中依次得到的各条边。

12.设a1、a2、a3是不同的关键字,且a1>a2>a3,可组成六种不同的输入序

列。

问其中哪几种输入序列所构造的二叉排序树的高度为3?

13.构造二叉排序树,在查找每个结点概率相等情况下的平均查找长度,二叉排序树的插入和删除算法

14.画出用线性探测再散列(线性探查法)处理冲突时生成的哈希表及计算平均查找长度

15.画出用外链法处理冲突时生成的哈希表及计算查找成功时的平均查找长度

16.对于一组记录的排序码为(465,792,562,383,401,845,502,423),

写出基数排序(低位优先)进行一趟分配与回收后的结果。

17.给定健值序列{49,38,65,97,76,13,27,49*},要求按关键字递增排序,分别写出直接插入排序、起泡排序、简单选择排序、归并排

序、快速排序的第一趟和第二趟排序结果

18.初建堆和筛选法调整堆(小顶堆、大顶堆)算法,给定序列,画出堆对应的完全二叉树的初始状态和初建堆的状态

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

当前位置:首页 > 经管营销 > 金融投资

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

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