数据结构习题一、名词解释1. 数据、数据元素、数据项、数据结构、数据的逻辑结构、数据物理结构、顺序存储、链式存储、算法、时间复杂度、空间复杂度。
2. 线性表、顺序表、单链表、双向链表、循环链表、双向循环链表、三个概念的区别:头指针、头结点、首元结点(第1个元素结点)。
3. 栈(顺序栈、链栈)、队列(顺序队、链队)、循环队列、递归、稀疏矩阵、三元组。
4. 树、叶子结点、结点的度、树的度、树的高(深)度、二叉树、遍历、满二叉树、完全二叉树、哈夫曼树、WPL哈夫曼编码。
5. 图(有向、无向)、网、边、弧、度、入度、出度、完全图(有向、无向)、(强)连通图(分量)、(最小)生成树、邻接矩阵、邻接表、DFS BFSO6. 查找表、关键字、静态查找、动态查找、ASL、顺序查找、折半查找、分块查找、二叉排序树。
7. 排序、内(外)排序、稳定性、插入(直接、希尔),交换(起泡、快速),选择(直接、堆),2 路归并。
一、填空题1. 数据结构是研究数据的 _逻辑结构_和—物理结构_ ,并在这种结构上定义相关的运算,设计实现这些运算的算法,分析算法的效率。
算法的效率包括时间和空间两个方面,分别称为—时间复杂度和空间复杂度—。
2. 数据的基本单位是数据元素,数据的最小单位是数据项。
3. 算法是对特定问题求解—步骤___的一种描述,是指令的有限序列。
4. 一个算法的时间复杂度为(3n3+2n — 7),其数量级表示为_0 ( n3) __。
5. 一个算法具有5个特性:_确定性、—可行性_、_有穷性_、输入和输出。
6. 算法性能的分析和度量,可以从算法的时间复杂度一和—空间复杂度—来评价算法的优劣。
7. 数据的逻辑结构包括集合结构、_线性结构 _、—树形结构_和_图型结构—四种类型。
8. 数据结构在计算机中的表示称为数据的物理结构,它可以采用 _顺序存储_ 或_链式存储_两种存储方法。
9. 线性表有两种存储结构,分别为_顺序存储 _ 和___________ 链式存储_。
10. 链式存储的特点是利用指针—来表示数据元素之间的逻辑关系。
11. 若频繁地对线性表进行插入和删除操作,该线性表宜采用链式存储—存储结构。
12. 线性表中的数据元素之间具有 _一对一_的线性关系,除第一个和最后一个元素外,其他数据元素有且只有一个_直接后继和直接前趋。
13. 在一个单链表中 P所指结点之后插入一个S所指结点时,应执行 s->next=_ p->next ___________ 和p->next=_ S ________ 的操作。
14. 在一个单链表中删除 P的后继结点q时,应执行以下操作 p->next= q->next 。
15. 对带头结点head的单链表,则判断其为空的条件为head-> next=NULL16. 对带头结点head的循环单链表尾结点(由P所指向)判非空的条件为 _p->next=head __________ 。
17. 在栈结构中,允许插入的一端称为_栈顶________ ;在队列结构中,允许插入的一端称为_队尾 _________ 。
18. 队列中元素的入队和出队应遵循一先进先出_ _原则,数据元素1,2, 3, 4,5按照次序入队后,第一个出队的是_1 ______ 。
19. 在循环队列中,存储空间为O〜n-1。
设队头指针front指向队头元素前一个空闲元素,队尾指针指向队尾元素,那么其队空标志为rear=front ,队满标志为_(rear+1)% n=front _。
20. 设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为_239 _____________ 。
21. 在一个长度为n的顺序表中删除第i个元素(1≤ i ≤ n),需向前移动 n-i 个元素。
22. 在一个长度为n的顺序表中第i个元素前(1≤ i ≤ n),插入一个元素,需向后移动n-i+1个元素。
23. 在顺序存储的线性表中插入或删除一个元素平均约移动表中__50%_ (或一半)_的元素。
24. 在顺序表中访问任意一结点的时间复杂度均为0(1),因此,顺序表也称为随机存取的数据结构。
25. 在n个结点的单链表中要删除已知结点*p ,需找到它的前驱结点的地址,其时间复杂度为 O(n)。
26. 一个广义表为(a,(a,b),d,e,((i,j),k)),则该广义表的长度为 __5___,深度为 3 。
27. 已知广义表 A=(( a,b,c),( d,e,f)),则运算 tail (head (tail(A)))= (e,f) __。
28. 已知广义表 Ls=(a,(b,c,d),e) ,运用 head和tail 函数取出LS中的原子 b的运算是head(head(tail(LS)))_____ 。
29. 广义表((a,b),c,d)的表头是 _(a,b) _ 表尾是 J c,d)_。
30. 广义表(a,b,c,d)的表头是_a____ 表尾是 (b,c,d) 。
31. 两个串相等的充分必要条件是: 串长相等且对应的字符相等。
32. 不含任何字符的串称为________ 空串 _____ 其长度为 0 。
33. 对于稀疏矩阵的压缩存储,通常用一个三元组表示非零元素的信息,其中包括非零元素所在的行______ 、—列_______ 以及它的值。
34. 若二叉树中有20个叶子结点,则该二叉树有 _19 __________ 个度为2的结点。
35. 若二叉树中度为2的结点有15个,则该二叉树有__16 _____________ 个叶子结点。
36. 深度为h且有 2^h-1 _______ 个结点的二叉树称为满二叉树。
37. 深度为k的二叉树最多有_ 2^k-1 个结点,最少有JS—个结点,第i层上最多有_2^(i-1) ____ 个结点。
38. 深度为5的满二叉树共有_31 __________ 个结点,其中有__16 ______ 个叶子节点。
39. 若深度为6的完全二叉树的第6层有3个叶结点,则该二叉树一共有_34 ______ 个结点。
40. 深度为15的满二叉树上,第 11层有_ _______ 个结点。
41. 一棵具有100个结点的完全二叉树,它的深度为_7_ ,其中度为1的结点有 _ 1_个。
42. 某二叉树的后根遍历序列为abd ,中根遍历序列为 adb ,则它的先根遍历序列为 _dab __________ 。
43 •哈夫曼树是指对于一组带有确定权值的叶子结点构造的具有最小带权路径长度的二叉树。
44. 具有m个叶子结点的哈夫曼树共有_________ 2m-1 _________ 个结点。
45. 已知一棵哈夫曼树含有 60个叶子结点,则该树中共有_ 59 _______ 个非叶子结点。
46. 在一个具有n个顶点无向完全图中,含有 _n(n-1)/2 __________ 边;在一个具有n个顶点有向完全图中,含有 _n(n-1) _____ 边。
一个具有4个顶点的无向完全图有 _6_ 条边。
47. 具有n个顶点的连通图至少需有 _n-1_ 条边。
48. 一个连通图的生成树是该图的______ 极小_连通子图。
若这个连通图有n个顶点,则它的生成树有____ n-1 _条边。
49. 在有向图的邻接矩阵中,第i行中非零元素的个数正好是第i个顶点的_出度第i列中非零元素的个数正好是第i个顶点的_入度_。
50. 在一个图中,所有顶点的度数之和等于所有边数的_2_倍。
51. 在无向图G的邻接矩阵A中,若A [i ] [j ]等于1,贝U A :j ] :i ]等于—1 ________ 。
52. 对二叉排序树进行—中序—遍历,可以得到按关键字从小到大排列的结点序列。
53. 一个有序表为{1 , 3, 9, 12, 32, 41, 45, 62, 75, 77, 82, 95, 100},当折半查找值为82 的结点时,经过 _4 _ 次比较后查找成功。
54. 在线性表中采用折半查找法查找一个数据元素,线性表中元素应该按值有序,并且采用顺序存储—存储方法。
55. 在简单选择排序、堆排序、快速排列、归并排序四种排序方法中,排序方法稳定的是_归并排序。
56. 冒泡排序是一种稳定的排序方法,对n个元素的序列进行冒泡排序时,最多需进行_n-1_趟。
该排序方法的时间复杂度为 _0( n2) _。
57. 给定序列{100 , 86, 48, 73, 35, 39, 42, 57, 66, 21},按堆的定义,则它一定—大根—堆。
58. 数据结构是指数据及其相互之间的一种或多种关系。
当结点之间存在 M对N( M N)的联系时,称这种结构为______ 图状结构。
59. 队列的插入操作是在队列的队尾进行,删除操作是在队列的队头进行。
60. 每次从无序表中顺序取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做直接插入_排序;每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做 __简单选择(或直接选择) _____ 排序。
61. 二叉树的前序遍历序列为A, B, C, E, F, D, G H中序遍历序列为A, E, C, F, B, G,, H,其后序遍历序列为E,F,C,G,H,D,B,A 。
62. 对于一棵具有n个结点的二叉树,若一个结点的编号为i(0 V i V n-1 ),则它的左孩子结点的编号为_2i ________ ,右孩子结点的编号为 _ 2i+1 ________ ,双亲结点的编号为 _ i/2 ______ 。
63. 在一个具有6个顶点的无向完全图中,包含有_15 ______ 条边,在一个具有 6个顶点的有向完全图中,包含有_30 _______ 条弧。
64. 快速排序在平均情况下的时间复杂度为__0(nlog 2n)_ ,在最坏情况下的时间复杂度为__20( n)__。
65. 从一棵二叉排序树中查找一个元素时,若元素的值等于根结点的值,则表明—查找成功______ ,若元素的值小于根结点的值,则继续向—左子树_____查找,若元素的大于根结点的值,则继续向__右子树_______查找。
66. 在循环单链表中,最后一个结点的指针域指向___首—结点。
67. 假定一棵树的广义表表示为 A (C, D(E, F, G), H( I,J)),贝U树中所含的结点数为_9_个,树的深度为__3___ ,树的度为__3__o68. 通常从四个方面评价算法的质量:正确性、可读性_、健壮性—和效率与低存储量需求_。
69. 假设一棵完全二叉树含1000个结点,则其中度为2的结点数为 499 。