数据结构习题及答案

进行查找运算,则最好采用____存储结构。

8.对于一个长度为n的顺序存储的线性表,在表头插入元素的时间复杂度为____。

9.对于一个单链表存储的线性表,在表头插入结点的时间复杂度为____,在表尾插入结点的时间复杂度为____。

10.在线性表的单链表存储中,若一个元素所在结点的地址为p,则其后的断结点的地址为____。

11.在以HL为头指针的带头结点的单链表和循环单链表中,链表为空的条件分别为____和____。

12.在____链表中,既可以通过设定一个头指针,也可以通过设定一个尾指针来确定它,即通过头指针或尾指针可以访问到该链表的每个结点。

13.在一个单链表中删除指针p所指向结点的后继结点时,需要把____的值赋给p->next指针域。

14.在一个单链表中指针p所指向结点的后面插入一个指针q所指向的节点时,首先把____的值赋给p->next,然后把____的值赋给p->next。

15.假定指向单链表中第一个结点的头指针为head,则像该单链表的表头插入指针p所指向的新结点时,首先执行____赋值操作,然后执行____赋值操作。

16.访问一个顺序表和一个单链表中第i个元素的时间复杂度分别为____和____。

17.在一个带头结点的循环单链表中,在表头插入或删除与在其它位置插入和删除,其操作过程是否相同?________。

18.在双向链表中每个结点包含有两个指针域,一个指向其____结点,另一个指向其____结点。

19.在一个双向链表中指针p所指向的结点之后插入一个指针q所指向的结点时,需要对p->next->prior指针域赋值为____。

20.在一个双向链表中删除指针p所指向的结点时,需要对p->next->prior指针域赋值为____。 21.栈又称为____表,队列又称为____表。

22.在一个用一维数组a[N]表示的顺序栈中,该栈所含元素的个数最少为____个,最多为____个。

23.像一个顺序栈插入一个元素时,首先使____后移一个位置,然后把新元素____到这个位子。

24.从一个栈删除元素时,首先取出____,然后再使____减一。

25.一个顺序栈存储一个一维数组a[M]中,栈顶指针用top表示,当栈顶指针等于____时为空栈,栈顶指针为____时为满栈。

26.假定一个链栈的栈顶指针为top,每个结点包含值域data和指针域next,当p所指向的结点入栈时,则首先执行____操作,然后执行____操作。

27. 假定一个链栈的栈顶指针为top,每个结点包含值域data和指针域next,当进行出栈运算时(假定栈非空),需要把栈顶指针修改为____的值。 28.设元素1,2,3,4,5依次进栈,若要在输出端得到序列34251,则应进行的操作序列为Push(s,1),Push(s,2),____,Pop(s),Push(s,4),Pop(s),____,____,Pop(s),Pop(s)。

29.设元素a,b,c,d依次进栈,若要在输出端得到序列cbda,则应进行的操作序列为push(s,a),push(s,b),push(s,c),____,____,____pop(s),pop(s)。 30.队列的插入操作在____进行,删除操作在____进行。

31.一个顺序循环队列存在于a[M]中,假定队首和队尾指针分别为front和rear,则判断对空的条件为____,判断对满的条件为____。

32.一个顺序循环队列存在于a[M]中,假定队首和队尾指针分别为front和rear,则求出队首和

队尾指针的下一个位置的计算公式分别为________和________。

33.在一个用一维数组a[N]存储的顺序循环队列中,该队列中的元素个数最少为____个,最多为____个。

34.向一个顺序循环队列中插入元素时,需要首先移动____,然后再向它所指位置____新元素。

35.在一个空链队列中,假定队首和队尾指针分别为f和r,当向他插入一个新结点*p时,则首先执行____操作,然后执行____操作。

36.在一个带头结点的循环链队列中,假定队首和队尾指针分别为f和r,当向它插入一个新结点*p时,则首先执行____操作,然后执行____操作。

37.假定front和rear分别为一个链队列的对首和队尾指针,则该链队列中只有一个结点的条件为________。

38.在一个链栈中,若栈顶指针等于NULL则为____;在一个链队列中,若对首和队尾的指针相同,则表示该队列为____或该队列____。

39.一个二维数组A[15,10]采用行优先方式存储,每个数据元素占用4个存储单元,以该数组第3列第0行的地址(即A[3,0]的地址)1000为首地址,则A[12,9]的地址为____。 40.在二维数组a[10,20]中,每个元素占8个存储单元,假定该数组的首地址为2000,则数组元素a[6,15]的字节地址为____。 41.有一个8×8的下三角矩阵A,若将其进行顺序存储于一维数组a[N]中,则N的值为____。 42.有一个10×10的下三角矩阵A,若将其进行顺序存储于一维数组a[N]中,则Aij(1≤i≤10,1≤j≤i)存储于a中的下标位置为____。

43.有一个8×8的下三角矩阵A,若将其进行顺序存储,每个元素占用4个字节,则A5,4元素的相对字节地址为(相对首元素地址而言)____。 44.一种数据结构的元素集合K和它的二元关系R为:

K={a,b,c,d,e,f,g,h}

R={}则该数据结构具有____结构。 45.对于一棵具有n个结点的树,则该树中所有结点的度数之和为____。

46.在一棵树中,____结点没有前驱结点,其余每个结点有并且只有一个____,可以有人以多个____结点。

47.如图1.3所示为一棵树,该树的叶子结点数为____个,单支结点数为____个,双分支结点数为____个,三分支结点数为____个。

48.如图1.3所示的一棵树,结点K的所有祖先的结点数为____个,结点B的所有子孙结点数为____个。

49.如图1.3所示的一棵树,结点D和X的层数分别为____和____。 50.如图1.4所示的一棵树,则树中所含的结点数为____个,树的深度为____,树的度为____。 51.如图1.4所示的一棵树,则度为3,2,1,0的结点数分别为____,____,____。 52.如图1.4所示一棵树,则结点H的双亲为____,孩子结点为____。

53.在一棵二叉树中,假定双分支结点数为5个,单分支结点数为6个,则叶子结点数为____。 54.对于一棵二叉树,若一个结点的编号i,若它的左孩子结点存在,则其编号为____,若右孩子结点存在,则其编号为____,若双亲结点存在,则其编号为____。 55.在一棵二叉树中,第5层上的结点数最多为____。

56.假定一棵二叉树的结点数为18,则它的最小深度为____,最大深度为____。

57.如图1.5所示为一棵二叉树,则E结点的双亲结点数为____,左孩子结点为____,右孩子结点为____。

58.如图1.5所示为一棵二叉树,它含有双支结点____个,单分支结点____个,叶子结点____

个。

59.假定一棵二叉树顺序存储在一维数组a中,若a[5]元素的左孩子存在则对应的元素为____,若右孩子存在则对应的元素为____,双亲元素为____。

60.若对一棵二叉树从0开始进行结点编号,并按此编号把它存储到一维数组a中,即编号为0的结点存储到a[0]中,依次类推,则a[i]元素的左孩子为____,右孩子为____,双亲元素(i>0)为____。

61.对于一棵具有n个结点的二叉树,对应____二叉链表中指针总数为____个,其中____个用于指向孩子结点,____个指针空闲。

62.在一棵深度为h的完全平衡二叉树中,最少含有____个结点,最多含有____个结点。 63.一棵深度为5的完全二叉树中的结点数最少为____个,最多为____个。 64.如图1.6所示为一棵二叉树,对它进行先序遍历结果为____。

65.若将如图1.7所示为一棵树转换为二叉树,该二叉树中双支结点的个数为____个,单支结点的个数为____个,叶子结点个数为____。

66.一棵树转换为二叉树后如图1.8所示,则原树中分支结点数为____,叶子结点数为____。 67.一个树林转换成二叉树后如图1.9所示,则该素林中包含____棵树。

68.若由3,6,8,12,10作为叶子结点的值生成一棵哈夫曼树,则该树的深度为____,带权路径长度为____。

69.一种数据结构的元素集合K和它的二元关系R为:K={1,2,3,4,5,6} R={(1,2)(2,3)(2,4)(3,4)(3,5)(3,6)(4,5)(4,6)} 则该数据结构具有____数据结构。

70.在一个图中,所有顶点的度数之和等于所有边数的____倍。

71.在一个具有n个顶点的无向完全图中,包含有____条边,在一个具有n个顶点的有向完全图中,包含有____条边。

72.已知一个连通图的边集为{(1,2),(1,3),(1,4),(2,3),(2,5),(3,5),(4,5)},则度为3的顶点的个数有__个。

73.假定一个有向图的顶点的集为{a,b,c,d,e,f},边集{},则出度为0的顶点个数为__,入度为1的顶点个数为__。

74.在一个具有n个顶点的无向图中,要连通所有顶点则至少需要__条边。 75.表示图的两种存储结构为__和__。 76.在一个连通图中存在着__个连通分量。

77.若一个图的顶点集为{a,b,c,d,e,f},边集为{(a,b),(a,c),(b,c),(d,e)},则该图含有__个连通分量。

78.若一个图的边集为{<0,1>,<0,2>,<0,3>,<0,4>,<1,2>,<2,4>,<3,4>},则从顶点V0到顶点V4共有__条简单路径。

79.如图1.10所示为一个带权有向图,从顶点V0到顶点V4的最短路径长度为__。 80.对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小至少为__×__。 81.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点的个数分别为__和__。

82.在有向图的邻接表和逆邻接表表示中,每个顶点邻接表分别链接着该顶点的所有__和__。

83.有一个图的边集为{(a,c),(a,e),(b,e),(c,d),(d,e)},从顶点a出发进行深度优先搜索遍历得到的顶点序列为____,从顶点a出发进行广度优先搜索遍历得到的顶点序列为____。

84.一个图的边集为{(a,c),(a,e),(c,f),(d,c),(e,b),(e,d)},从顶点a出发出发进行深

度优先搜索遍历得到的顶点序列为____,从顶点a出发进行广度优先搜索遍历得到的顶点序列为____。

85.图的__优先搜索遍历算法是一种递归算法,图的__优先搜索遍历算法需要使用队列。 86.若一个连通图中每个边上的权值均不同,则得到的最小生成树是__(唯一/不唯一)。 87.以顺序查找方法从长度为n的顺序表或单链表中查找一个元素时,平均查找长度为__。 88.对长度为n的查找表进行查找时,假定查找第i个元素的概率为P,查找长度(即在查找过程中依次同有关元素比较的总次数)为C,则在查找成功的情况下的平均查找长度的计算公式为____。

89.假定一个顺序表的长度为40,并假定查找每个元素的概率都相同,则在查找成功的情况下的平均查找长度__,则在查找不成功的情况下的平均查找长度__。

90.以折半查找方法从长度为n的有序表中查找一个元素时,平均查找长度约等于__减一。 91.以折半查找方法从长度为50的有序表中查找一个元素时,其查找长度不超过__。 92.从有序表(12,18,30,43,56,78,82,95)中分别折半查找43和56元素时,其查找长度分别为__和__。

93.假定对长度n=50的有序表进行折半查找,则对应的判定树深度为__,最后一层的结点数为__。

94.在分块查找中,假定查找表(即主表)的长度为96,被等分为8个子表,则进行分块查找的平均查找长度为__。

95.假定对长度为n的有序表进行分块查找,并假定每个子表的长度为,则进行分块查找的平均查找长度为__。

96.在一棵二叉树排序中,每个分支结点的左子树上所有结点的值一定__该结点的值,右子树上所有结点的值一定__该结点的值。

97.从一棵二叉排序树中查找某个元素时,若元素的值等于根结点的值,则表明__,若元素的值小于根结点的值,则继续向__查找,若元素的值大于根结点的值,则继续向__查找。

98.向一棵二叉排序树种插入一个元素时,若元素的值小于根结点的值,则接着向根结点的__插入,若元素的值大于根结点的值,则接着向根结点的__插入。

99.在一棵平衡二叉排序树中,每个结点的左子树深度与右子树深度之差的绝对值不超过__。

100.假定对线性表(38,25,74,52,48),进行散列存储,采用H(K)=K%7作为哈希函数,采用线性探测再散列法处理冲突,则在建立哈希表过程中,将会碰到__次冲突。 101.假定对线性表(38,25,74,52,48)进行散列存储,采用H(K)=K%7作为哈希函数,采用线性探测再散列法处理冲突,则平均查找长度为__。

102.在线性表的散列存储中,装填因子a又称装填系数,若用m表示散列表的长度,n表示散列存储的元素个数,则a等于__。

103.对线性表(18,25,63,50,42,32,90)进行散列存储时,若选用H(K)=K%9作为哈希函数,则散列地址为0的元素有__个,则散列地址为5的元素有__个。 104.每次从无序子表中取出一个元素,把它插入到有序子表的适当位置,此种排序方法叫做__排序;每次从无序子表中挑选出一个最小或最大元素,把它交换到有序表的一段,此种排序方法叫做__排序。

105.若对一组记录(46,79,56,38,40,80,35,50,74)进行直接插入排序,当把第8个记录插入到前面已排序的有序表时,为寻找插入位置需比较__次。 106.__排序方法能够每次使无序表中的第一个记录插入到有序表中。

107.对n个记录进行冒泡排序时,最少的比较次数为__,最少的趟数为__。

联系客服:779662525#qq.com(#替换为@)