《数据结构》练习题.docx

上传人:b****6 文档编号:9160855 上传时间:2023-02-03 格式:DOCX 页数:19 大小:398.91KB
下载 相关 举报
《数据结构》练习题.docx_第1页
第1页 / 共19页
《数据结构》练习题.docx_第2页
第2页 / 共19页
《数据结构》练习题.docx_第3页
第3页 / 共19页
《数据结构》练习题.docx_第4页
第4页 / 共19页
《数据结构》练习题.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《数据结构》练习题.docx

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

《数据结构》练习题.docx

《数据结构》练习题

数据结构》练习题一

一、简答题:

1.什么是存储密度(storagedensity)?

2.算法与程序的区别是什么?

3.算法的时间复杂度仅与问题的规模相关吗?

4.试分析顺序存储结构的优缺点。

5.什么是栈(stack)?

6.什么是假溢出?

7.在链表中引入表头结点的优点(或好处)是什么?

8.链表中的表头指针、表头结点和开始结点有什么不同?

各自所起的作用是什么?

9.试分析顺序存储结构和链接存储结构各自的优点。

10.什么是二叉树(binarytree)?

11.什么是满二叉树(fullbinarytree)?

12.设高度为h的二叉树中只有度为0和度为2的结点,问此类二叉树中的结点数可能达到的最大值和最小值各为多少?

13.什么是遍历运算?

14.什么是线索二叉树(threadedbinarytree)?

15.什么是堆(heap)?

二、单选题

1.下列算法的时间复杂度是()。

x=i;

i=n;

n=x;

2.

3.

4.

5.

6.

7.

8.

9.

10

11

12

列描述中正确的是()。

A.线性表的逻辑顺序与存储顺序总是一致的

B.每种数据结构都具备查找、插入和删除三种基本运算

C.数据结构实质上包括逻辑结构和存储结构两方面的内容

D.选择合适的数据结构是解决应用问题的关键步骤

 

.相对于顺序存储而言,链接存储的优点是()。

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

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

()。

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

设有两个串s1和s2,求s2在s1中首次出现的位置的运算称为()。

若设根结点的层数为0,则高(或深)度为4的二叉树至多含有的结点数为()。

完全二叉树是下列情况的哪一种()。

24.设根结点的层数为0,若高度为h的二叉树上只有度为0和度为2的结点,则此二叉树上所包含的

结点数至少为()。

25.在下面的叙述中,正确的是()。

A•树的后根遍历序列与其对应的二叉树的后序遍历序列相同

B•树的先根遍历序列与其对应的二叉树的前序遍历序列相同

C.树的先根遍历序列与其对应的二叉树的中序遍历序列相同

D•树的先根遍历序列与其对应的二叉树的后序遍历序列相同

26.

某二叉树结点的前序序列为ECBAD,中序序列为EBCDA,则该二叉树结点的后序序列为()。

27.n个结点的线索二叉树上含有的线索数为()。

D.2n

A.n-1B.nC.n+1

28.在线索二叉树中,p所指结点没有右子树的充要条件是()。

A.p->rchild==NULLB.p->rtag==1

C.p->rtag==1且p->rchild==NULLD.p->rtag==0

29.堆的形状是一棵()。

C.完全二叉树D.AVL树

B.75,65,45,10,30,25,20,15

D.75,45,65,10,25,30,20,15

A.二叉排序树B.满二叉树

30.下列四个序列中,哪一个是堆()。

A.75,65,30,15,25,45,20,10

C.75,45,65,30,15,25,20,10

三、判断题

1.数据的逻辑结构是指数据的各数据项之间的逻辑关系。

()

2.数据的存储结构是数据的逻辑结构在计算机存储器上的实现,它是依赖于计算机的。

()

3.健壮的算法不会因非法的输人数据而出现莫名其妙的状态。

()

4.顺序存储结构的主要缺点是不利于插入、删除操作。

()

5.数组是同类型值的集合。

()

6.取顺序表的第i个元素的时间与i的大小无关。

()

7.若输人序列为1,2,3,4,5,6,则通过一个栈可以输出序列1,5,4,6,2,3。

()

10.链接存储结构属动态存储方式。

()

11.链表中的表头结点仅起到标识的作用。

()

12.循环链表不是线性表。

()

13.为了方便的插入和删除数据,可以使用双向链表来存放数据。

()

14•在指定结点之后插入新结点时,双链表比单链表更方便。

()

15.串是一种数据对象和操作都特殊的线性表。

()

16.串只能按顺序存储方式进行存储。

()

17•空串是由空格构成的串。

()

18.空串与空格串是相同的。

()

19•两个串相等的充分必要条件是两个串的长度相等且对应位置的字符相同。

()

20•二叉树每个结点至多有两个子女,而树则无此限制。

因此,二叉树是树的特殊情形。

()

21.给定一棵树,可以找到唯一的一棵二叉树与之对应。

()

22.完全二叉树的存储结构通常采用顺序存储结构。

()

23.在完全二叉树中,若一个结点没有左子女,则它必是树叶。

()

24.采用二叉链表作为存储结构,树的先根遍历和相应的二叉树的前序遍历的结果是一样的。

()

25.树(森林)的结点的先根遍历和后根遍历分别与它对应二又树的结点前序遍历和后序遍历是一致的。

()

26•二叉树的遍历只是为了在应用中找到一种线性次序。

()

27.在中序线索二叉树中,每一非空的线索均指向其祖先结点。

()

28.深度为K(设根结点的层数为1)的二叉树中结点总数小于等于2k-1。

()

29.数组不适合作为任何二叉树的存储结构。

()

30.堆是满二叉树。

()

31.哈夫曼树是带权(外部)路径长度最短的树,路径上权值较大的结点离根较近。

()

四、填空题

1.选择合适的是解决应用问题的关键步骤。

2•数据的结构是独立于计算机的。

3.数据的运算是定义在数据的结构之上的。

4.线性表中的第一个结点没有前驱,该结点称为。

5.当栈满时再做进栈运算将发生。

6.在有n个结点的顺序表中进行插入、删除运算,其平均时间复杂度为。

7.一个栈的输入序列是:

1,2,3,则不可能的栈输出序列是。

8.head指向的不带表头结点的单链表为空的条件是。

9.在链表中设置表头结点的优点是。

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

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

11.单循环链表的最大优点是。

12•在具有n个结点的双链表中进行插入、删除运算,其时间复杂度为。

13.串的最大子串是,串的最小子串是。

14.设S="I?

am?

a?

student”,其长度是。

15.树中结点的最大度数称为树的。

16.在一棵二叉树中,度为0的结点的个数为n°,度为2的结点的个数为n2,则有n°=

17.具有256个结点的完全二叉树(设根结点的层数为0)的深度为。

18.已知二叉树有50个叶结点,则该二叉树的总结点数至少是。

19.具有n个结点的满二叉树,其叶结点的个数是。

20.由一棵二叉树的前序序列和可惟一确定这棵二叉树。

21.二叉树的前序序列和中序序列相同的条件是。

22.具有n个结点的二叉树,采用二叉链表(Ichild-rchild表示法)存储,共有个空链域。

23.哈夫曼树是带权(外部)路径长度的二叉树。

24.若以{4,5,6,7,8}作为叶结点的权值构造哈夫曼树,则带权(外部)路径长度是。

五、图示题

1.根据右下图所示的森林,求解如下问题:

⑴写出后根次序(后序)遍历此森林的结点序列;

⑵将此森林转换成对应的二叉树。

2.已知一棵二叉树结点的中序序列和后序序列分别为DKHBCFAIGJE和KHDBFIJGEAC,请画出此二

叉树及它所对应的树(林)。

3•对于右下图所示的二叉树,请完成:

⑴画出此二叉树对应的树(林);⑵画出其前序线索二叉树。

 

4.对于右下图所示的二叉树,请画出它的后序线索二叉树。

 

.给定一组权W={3,5,10,12,15,22}

构造哈夫曼(Huffman)树,并计算它的带权外部路径长

度WPL

6.对于给出的一组权W={14,15,7,4,20,3},构造哈夫曼(Huffman)树,并计算其带权(外部)路径长度

WPL。

六、算法题

1.编写一个求单循环链表中结点个数的算法,并分析算法的时间复杂度(要求写出存储结构的描述)。

2.写出将单链表逆置的算法,即若原单链表中存储元素的次序为ao,ai,,,an-i,则单链表逆置后便为

an-i,an-2,

a0。

要求就地逆置,即不再重新开辟存储空间,只通过调整指针来完成,并且使用的

附加单元要尽可能的少。

3.设有n个结点的二叉树用二叉链表(即lchild-rchild表示法)进行存储。

编写算法:

判断此二叉树是否是正则二叉树(即每个分支结点都恰有两个子女的二叉树)。

请分析算法的时间复杂度。

4.二叉树以二叉链表(lchild-rchild表示法)作为存储结构,试编写计算二叉树中叶结点个数的算法

(要求写出存储结构的描述),并分析算法的时间复杂度。

5.二叉树以二叉链表(lchild-rchild表示法)作为存储结构,试编写计算二叉树中分支结点个数的算法(要求写出存储结构的描述)。

数据结构》练习题二

一、简答题:

1.什么是无向完全图(undirectedcompletegraph)?

2.什么是有向完全图(directedcompletegraph)?

3.什么样的图遍历后由所有顶点和遍历时所经过的边所构成的子图一定是生成树?

4.什么是有根的有向图?

5.图的邻接矩阵与邻接表两种存储表示法在空间代价上的差别为何?

6.求最小(代价)生成树的普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法各适用于什么样的图?

7.什么是拓扑排序?

8.什么是排序(sorting)?

9.什么是排序算法的“稳定性”?

10•举例说明希尔(Shell)排序是否是稳定的排序方法?

11.举例说明直接选择排序是否是稳定的排序方法。

12.请分别指出使快速排序算法的时间代价为最小和最大的两种待排序文件的初始状态。

13.顺序查找、折半查找和分块查找各自的平均查找长度ASL是多少?

14.什么是最佳二叉排序树(optimalbinarysorttree)?

15.什么是AVL树?

16.什么是负载因子?

17.为什么说冲突只能尽量地减少,但不可完全避免?

18.什么是堆积?

19.举例说明散列表的平均查找长度不随表中结点数目的增加而增加,而是随着负载因子的增大而增大。

若对n阶对称矩阵A按行优先顺序将其下三角形的元素(包括主对角线上的所有元素)依次存放于一维数组B[仁n(n+1)/2]中,则在B中确定aj(i

A.i*(i-1)/2+jB.j*(j-1)/2+i

C.i*(i+1)/2+jD.j*(j+1)/2+i

稀疏矩阵常用的压缩存储方法有两种,

它们是()。

A.二维数组和三维数组

B.三元组和散列

C.三元组和十字链表

D.散列和十字链表

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

广义表((a,b,c,d))的表头是()。

A.aB.()C.(a,b,c,d)D.(b,c,d)

广义表A=(a,b,(c,d),(e,(f,g))),则式子head(tail(head(tail(tail(A)))))的值为()。

A.(g)B.(d)C.cD.d

设广义表L=((a,b,c)),则L的长度和深度分别为()。

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

在下述几种排序方法中,不稳定的排序方法是()。

A.直接插入排序B.冒泡排序

C.直接选择排序D.归并排序

列排序算法中,其中()是稳定的。

在下面的排序方法中,其比较次数与待排序记录的初始排列状态无关的是()。

A.直接插入排序B.快速排序

C.直接选择排序D.归并排序

在下列排序算法中,哪一个算法的时间复杂度与记录初始排列无关()。

A.直接插入排序B.冒泡排序C.快速排序D.直接选择排序

下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是()。

A.直接插入排序B.快速排序C.直接选择排序D.堆排序

采用简单(直接)选择排序,比较次数与移动次数分别为()。

设有100个关键字,用折半查找法进行查找时,最大比较次数为()。

A.25

B.50

C.6

D.7

25.采用折半查找方法查找长度为n的线性表时,每个元素的平均查找长度为()。

2

A.O(n)B.O(nlog2n)C.O(log2n)D.O(n)

26.如果要求线性表既能较快地查找、又能适应动态变化的要求,则可采用的查找方法是()。

A.顺序查找B.折半查找C.分块查找D.基于属性的查找

27.设有n个结点的二叉排序树,对于成功的查找,最多的比较次数为()。

A.0

(1)B.O(log2n)C.O(n)D.O(nlog2®

28.设有n个结点的最佳二叉排序树,对于成功的查找,最多的比较次数为()。

A0

(1)B0(log2n)C0(n)D0(nlog2n)

29.下列哪项不是利用查找表中数据元素的关系进行查找的方法()。

A有序表的查找B二叉排序树的查找

CAVL树D散列查找

30.散列函数有一个共同的性质,即函数值应当以下面的哪一项来取其值域的每个值()。

A同等概率B最大概率C最小概率D平均概率

三、判断题

1.在有向图中,度为0的顶点称为终端顶点(或叶子)。

()

2.有n个顶点的无向图,采用邻接矩阵表示,图中的边数等于邻接矩阵中非零元素之和。

()

3.连通分量是无图中的极大连通子图。

()

4.无向图的邻接矩阵可用一维数组存储。

()

5邻接矩阵适用于有向图和无向图的存储,但不能存储带权的有向图和无向图,而只能使用邻接表存储形式来存储它。

()

6带权的连通无向图的最小(代价)生成树必是唯一的。

()

7.最小生成树问题是构造带权连通图(网)的最小代价生成树。

()

8.若一个有向图的邻接矩阵对角线以下的元素均为零,则该图的拓扑有序序列必定存在。

()

9.拓扑排序算法仅适用于有向无环图。

()

10.当广义表中的每个元素都是原子时,广义表便成了线性表。

()

11.若一个广义表的表头为空表,则此广义表亦为空表。

()

12.广义表的取表尾运算,其结果通常是一个表,但有时也可能是一个单元素值。

()

13.对长度为无穷大的广义表,由于存储空间的限制,不能在计算机中实现。

()

14.折半插入排序所需比较次数与待排序记录的初始排列状态无关。

()

15.快速排序和归并排序在最坏情况下的比较次数都是0(nlog2n)°()

16.快速排序的速度在所有排序方法中最快,而且所需附加空间也最少。

17.在待排数据基本有序的情况下,快速排序效果最好。

()

18.归并排序在任何情况下都比所有简单的排序方法速度快。

()

19.归并排序的辅助存储空间代价为0

(1)。

()

20.对无序表用折半查找比顺序查找快。

()

21.折半查找法的查找速度一定比顺序查找法快。

()

22.

而且与每块中的元素个

分块查找在等概率查找情况下,其平均查找长度不仅与表中元素个数有关,

数有关。

()

23.在查找树(二叉排序树)中插入一个新结点,总是插入到叶结点下面。

()

24.对一棵二又排序树按前序方法遍历得到的结点序列是从小到大的序列。

()

25.n个结点的二叉排序树有多种,其中树的高度为最小的二叉排序树是最佳的。

()

26.在AVL树中,向某个平衡因子不为零的结点的树中插入一新结点,必引起平衡旋转。

()

27.哈希法的平均查找长度不随表中结点数目的增加而增加,而是随负载因子的增大而增大。

()

28.若哈希表的负载因子a

()

29.哈希表的平均查找长度与处理冲突的方法无关。

()

四、填空题

1.在图G的邻接表表示中,邻接表每个顶点的边表中所含的结点数,对于无向图来说等于该顶点

的;对于有向图来说等于该顶点的。

2.在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要条有向边(弧)。

3.有n个顶点的无向图的边数最少为。

4.对于n个顶点、e条边的图,若采用邻接表进行存储,则空间复杂度为。

5.图的逆邻接表存储结构只适用于图。

6.为了实现图的广度优先搜索,除了对已访问的图的结点进行标记外,还需以存放被访问的

结点以实现遍历。

7.求图的最小(代价)生成树问题,考虑的是图。

8.普里姆(Prim)算法的时间复杂度为,它对图较为适合。

9.用迪杰斯特拉(Dijkstra)算法求某一顶点到其他各顶点的最短路径是按最短路径长度的次序

来产生最短路径的。

10.二维数组A[10][20]采用了行优先的顺序进行存储,每个元素占一个存储单元,并且A[0][0]的存储

地址是300,则A[6][12]的地址是。

11.假设一个15阶的上三角矩阵A按行优先顺序压缩存储在一维数组B中,则非零元素A[9][9]在B

中的存储位置k=(注:

矩阵元素下标从I开始)。

12.设广义表L=((),()),则head(L)是;tail(L)是。

13.广义表运算式head(tail(((a,b,c),(x,y,z))))的结果是。

14.排序是将一组任意排列的记录按的值从小到大或从大到小重新排列成有序的序列。

15.在直接插入排序和直接选择排序中,若初始记录基本正序,则应选用。

16.希尔排序属于插入排序,冒泡排序属于。

17.从平均时间性能而言,排序最佳。

18.在数据表有序时,快速排序算法的时间复杂度是。

19.不受待排序初始序列的影响,时间复杂度为0(n2)的排序算法是,在排序算法的

最后一趟开始之前,所有元素都可能不在其最终位置上的排序算法是。

20.对n个记录的表R[l..n]进行直接选择排序,所需进行的排序码之间的比较次数

为。

21.在堆排序和快速排序中,若初始记录接近正序或反序,则应选用_。

22.对含有n个元素的序列进行排序时,堆排序所需要的附加结点是。

23.若对线性表进行折半查找,则对表的要求是。

24.有900个结点的线性表若采用分块查找(检索)的方法,最好每块应含有个结点;若按每

块含有25个结点来分块并对索引表也采用顺序查找,则平均查找长度为。

25.对于两棵具有而形状不同的二叉排序树,遍历它们得到的结点

序列是一样的。

26.对于二叉排序树进行查找的方法是用给定的值与根结点的关键字进行比较,若比根结点的关键字小

则继续在子树中查找。

27.散列表的查找效率主要取决于散列表造表时选取的和。

五、图示题

1•已知一个有向图如右下图所示,请分别写出从顶点a出发进行深度优先遍历(DFS)和广度优先遍历

(BFS)所得到的顶点序列及生成树(林)。

(要求:

有多个顶点可供选择时,序号小的优先。

2

•对于右下图所示的带权无向图,请画出它的一棵最小生成树。

 

4•设有待排序文件为{35,22,18,44,57,06},请给出直接选择排序的过程,即给出每趟结束后的状态。

排序算法排序时(取d1=5),每趟结束时的状态。

6.设待排序文件的初始排序码序列为{32,38,10,53,80,69,32,05},写出采用冒泡排序算法排序时,

每趟结束时的状态。

7.设待排序文件的初始排序码序列为每趟结束时的状态。

{28,55,36,05,43,24,62,17},写出采用归并排序算法排序时,

8.若在有序表(05,11,20,26,

32,38,43,47,56,61,69,72,86)中进行折半查找,试分别

画出查找关键字为11和70的过程。

9.根据给定的一组关键字{36,48,25,65,34,62,16,71,56,40},请完成:

此二叉排序树;⑵计算在等概率的情况下查找成功的平均查找长度

按关键字从前向后的次序建立

ASL。

10.对于长度为12的表(44,05,81,24,19,32,28,35,49,56,

排序树,并求其在等概率情况下查找成功的平均查找长度ASL。

53,41),请画出它的最佳二叉

11.根据给定的一组关键字{98,61,32,15,27,06,75,53,48,70,86},请完成:

⑴画出此棵最佳二叉排序树;

 

12.设有关键字集合为{16,05,28,10,09,17},散列表的长度为8,用除留余数法构造散列函数,用线性探查法解决冲突,并按关键字在集合中的顺序插入,请画出此散列(哈希)表,并求出在等概率

情况下查找成功的平均查找长度。

13.设有关键字集合为{35,08,21,15,24,03,48,33},散列表的长度为12,用除留余数法构造散列函

数,用线性探查法解决冲突,并按关键字在集合中的顺序插入,请画出此散列(哈希)表,并求出在

等概率情况下查找成功的平均查找长度。

六、算法题

1•编写一个在有向图G的邻接表存储表示中删除一条边<Vj,Vj>的算法,并分析算法的时间复杂度。

(假设边<Vj,Vj>在有向图G中一定存在。

2•设计一个算法,使得在

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

当前位置:首页 > 外语学习 > 韩语学习

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

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