提示:内容已经过期谨慎付费,点击上方查看最新答案

数据结构(中国海洋大学)

  1. 已知数组 A[0..9,0..9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[6,8]的地址为( )。

  2. A:1341 B:1340 C:1339 D:1342
    答案:1340AI参考:答案:C推理过程:已知数组 A[0..9,0..9]的每个元素占5个存储单元,起始地址为1000,因此 A[i,j]的地址为1000+(i*5+j)。A[6,8]即 i=6,j=8,带入可得 A[6,8]的地址为 1339。因此,本题答案为 C。'
  3. 线性表是具有n个( )的有限序列

  4. A:数据元素 B:字符 C:关系 D:数据项
    答案:数据元素AI参考:正确答案是【A:数据元素】。线性表是具有n个数据元素的有限序列。线性表是最常用的一种数据结构,它具有一维性、有序性和动态可变等特点。线性表可以分为静态和动态两种,其中动态线性表可以通过插入和删除操作实现列表的扩展和收缩。'
  5. 串的长度是指( )。

  6. A:串中所含不同字母的个数 B:串中所含字符的个数 C:串中所含不同字符的个数 D:串中所含非空格字符的个数
    答案:串中所含字符的个数AI参考:正确答案是B:串中所含字符的个数。串的长度是指串中所含字符的个数,包括空格、标点符号等非字母字符。因此,选项B是正确的答案。选项A和C都只考虑了不同字母的数量,而忽略了其他字符。选项D则只考虑了非空格字符的数量,忽略了其他字符的存在。'
  7. 设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为( )。

  8. A:40,50,20,95 B:45,40,15,20 C:15,20,40,45 D:15,40,60,20
    答案:15,40,60,20AI参考:选项C是正确的。希尔排序是一种基于插入排序的算法,通过比较相距一定间隔的元素来工作。在这个问题中,初始记录关键字序列为(50,40,95,20,15,70,60,45),增量d=4的一趟排序是指每次将元素间距缩小到原来的一半。根据题目描述,前4条记录关键字经过一趟希尔排序后变为15,20,40,45。因此,正确答案是选项C。'
  9. 由带权为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为( )

  10. A:23 B:44 C:37 D:46
    答案:44AI参考:正确答案是C:37。根据哈夫曼树的定义,叶子节点的权值之和等于整个树的权值之和。由题意可知,四个叶子节点的权值为9、2、5、7,它们的权值之和为23。构造哈夫曼树后,树中所有节点的权值之和为37,因此该树的带权路径长度为37。所以选项C是正确答案。'
  11. 设循环队列的存储空间为a[0…20],且当前队头指针和队尾指针的值分别为8和3,则该队列中的元素个数为( )

  12. A:5 B:6 C:17 D:16
    AI参考:正确答案是D:16。根据题目描述,当前队头指针为8,队尾指针为3,说明队列中有8个元素被取出,队列中剩余的元素个数为20-8-3=9个,因此该队列中的元素个数为9+3=12个。所以答案为D。'
  13. 串是一种特殊的线性表,其特殊性体现在( )

  14. A:数据元素可以是多个字符 B:数据元素是单个字符 C:可以是顺序存储 D:可以链接存储
    AI参考:正确答案是B:数据元素是单个字符。串是一种特殊的线性表,其特殊性体现在数据元素是单个字符。串中的字符可以是任意类型的数据,可以是整数、浮点数、字符串等,但每个元素必须是单个字符。串的存储方式可以是顺序存储或链式存储,但这并不是其特殊性所在。因此,选项B是正确答案。'
  15. 以下排序方法中,( )不需要进行关键字的比较。

  16. A:快速排序 B:堆排序 C:归并排序 D:基数排序
    AI参考:在给出的排序方法中,不需要进行关键字比较的是基数排序。基数排序是一种基于计数排序和桶排序的算法,它通过将待排序的数字按照其位数进行单独的排序,从而实现不需要比较的排序。对于每一位数字,都可以确定它在已排序序列中的位置,因此不需要进行关键字比较。而快速排序、归并排序和堆排序都需要在排序过程中进行关键字的比较。因此,正确答案是D:基数排序。'
  17. 设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列( )存储方式最节省运算时间。

  18. A:双向链表 B:单向链表 C:单向循环链表 D:双向循环链表
    AI参考:正确选项是 C:单向循环链表。因为在链表尾部插入或删除元素的操作是最常用的操作,而单向循环链表的特点是头尾相连,这样在尾部插入或删除元素时,只需要改变指针即可,不需要像双向链表或双向循环链表那样需要移动多个指针。因此,单向循环链表是最节省运算时间的存储方式。'
  19. 设某哈夫曼树中有199个结点,则该哈夫曼树中有( )个叶子结点。

  20. A:99 B:101 C:102 D:100
    AI参考:正确答案是【B:101】。根据哈夫曼树的定义,叶子结点个数 = 总结点数 - 内部结点数。题目中某哈夫曼树中有199个结点,由于其中只有一个内部结点,因此叶子结点个数为199-1=198个,再减去叶子结点的符号数1个,总共是198-1=197个。而本题中问的是哈夫曼树中有多少个叶子结点,所以答案为B选项,即101个叶子结点。'
  21. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍

  22. A:1 B:2 C:0.5 D:4
    AI参考:C:0.5在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的整数倍,且最大为1。因此,在这个问题中,所有顶点的入度之和等于所有顶点的出度之和的0.5倍。所以,正确答案是C:0.5。'
  23. 对于一个具有 n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为( ),在给定值为x的结点后插入一个新结点的时间复杂度为( )。

  24. A:O(n2),O(e) B:O(1),O(e) C:O(n2),O(n+e) D:O(1),O(n)
    AI参考:正确答案是D:O(1),O(n)。对于一个具有n个结点的单链表,在已知的结点p后插入一个新结点的时间复杂度为O(1),因为只需要修改p后面的一个指针即可。在给定值为x的结点后插入一个新结点的时间复杂度为O(n),需要遍历链表找到插入位置并修改指针。因此,答案为D。'
  25. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )。

  26. A:9,5,2,3 B:1,2,3 C:9,4,2,3 D:9,5,3
    AI参考:正确选项为C:9,4,2,3。解释:首先,我们需要知道二分查找的基本原理。在有序表中,二分查找是通过将数组分为两半,然后比较中间元素和目标元素,来确定目标元素应该在哪个半边继续查找。对于本题中的情况,有序表有18个元素,所以数组的长度为19。第一个元素放在数组的第一个位置(即A[1]),因此我们要查找的元素A[3]应该在数组的第三个位置。在进行二分查找时,首先需要找到中间位置的下标。在有序表中,中间位置通常是指总数除以2的结果(如果总数为偶数,则取中间两个元素的较小值)。所以对于数组A[19],中间位置应该是(19/2)=9。因此,我们要查找的元素A[3]应该大于中间位置的值,也就是要大于A[8]。然后我们移动到中间位置的右半部分继续查找。因为题目中只提到了一个A[3],所以我们不需要移动到左半部分去检查是否是负数或者其他异常情况。因此,继续在数组的右侧进行查找时,我们要找的是数组中第三个元素,也就是A[12]。它大于中间位置的值(即A[8])和前面的元素(即A[4])都满足条件。接着我们继续在数组的右侧进行查找,这次我们需要找的是数组中第四个元素(即A[13])。由于题目中已经说明有序表是已排序的,所以我们可以直接得出答案为C选项中的9,4,2,3。因此,正确的答案是C选项:9,4,2,3。'
  27. G是一个非连通无向图,共有28条边,则该图至少有 ( )个顶点。

  28. A:8 B:9 C:7 D:6
    AI参考:正确答案是:B:9。n个顶点n-1条边,若一个图没有环,即是一个连通图,n-1条边一定是奇数条边,因此该图至少有n个顶点。由题意知G是一个非连通无向图,则至少有n+1个顶点。根据已知条件可知,28=n+1,解得n=9。因此答案为B。'
  29. 三元组用来存储( )

  30. A:广义表 B:特殊矩阵 C:稀疏矩阵 D:稠密矩阵
    AI参考:正确选项是C:稀疏矩阵。三元组存储方式是一种用于表示稀疏矩阵的数据结构,它通过三个元素的列表来表示一个稀疏矩阵中的一行,其中每个列表中的元素对应于矩阵中的非零元素。因此,三元组存储方式适合用于存储稀疏矩阵,可以节省存储空间并提高数据访问效率。其他选项中,广义表、特殊矩阵和稠密矩阵都不是用三元组来存储的。'
  31. 某线性表中最常用的操作是读取序号为i的元素和在最后进行插入删除运算,则采用( )存储方式时间性能最好。

  32. A:单向循环链表 B:双向链表 C:顺序表 D:双向循环链表
    AI参考:正确答案是C:顺序表。线性表中最常用的操作是读取序号为i的元素和在最后进行插入删除运算,对于读取操作,顺序表(C)最快,因为它的存取操作时间复杂度为O(1);对于双向循环链表(D),时间复杂度为O(n),其中n为线性表的长度。双向链表(B)虽然也有插入和删除操作,但它的查找操作不如顺序表和单链表快。单向循环链表(A)与双向循环链表类似,但由于单向循环链表的尾节点指向头节点,所以在尾部插入和删除元素时,需要进行额外的处理。因此,选择顺序表存储方式时间性能最好。'
  33. 非空循环单链表head的尾结点p满足( )

  34. A:p.next==head B:p==head C:p==null D:p.next==null
    AI参考:正确选项是D:p.next==null。题目中提到非空循环单链表head的尾结点p,根据循环单链表的特性,尾结点的下一个节点就是头结点,因此尾结点的指针域为空,即p.next==null。所以选项D是正确的。选项A和B都表示头结点,不符合题目要求;选项C表示尾结点没有下一个节点,但题目中要求尾结点的下一个节点是头结点,所以选项C也不正确。'
  35. 一组记录的排列码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为( )

  36. A:84,79,56,38,40,46 B:79,46,56,38,40,84 C:84,79,56,46,40,38 D:84,56,79,40,46,38
    AI参考:正确答案是B:79,46,56,38,40,84。堆排序是一种基于二叉堆的比较排序方法,初始时将待排序序列构造成一个大顶堆。在这个问题中,记录的排列码为(46,79,56,38,40,84),可以将其按大小关系重新排列后得到(79,46,56,38,40,84),符合大顶堆的定义。因此,利用堆排序的方法建立的初始堆为79,46,56,38,40,84。'
  37. 树的先根序列等同于与该树对应的二叉树的( )

  38. A:后序序列 B:中序序列 C:层序序列 D:先序序列
    AI参考:答案是D:先序序列。树的先根序列等同于与该树对应的二叉树的先序遍历序列。先序遍历是指首先访问根节点,然后遍历左子树,最后遍历右子树。因此,先根序列也就是先序序列,与二叉树的先序遍历序列相同。'
  39. 一棵二叉树的先序遍历序列为ABCDEF,中序遍历序列为CBAEDF,则后序遍历序列为( )

  40. A:不确定 B:CBEDFA C:FEDCBA D:CBEFDA
    AI参考:答案:D推理过程:由先序遍历得到根节点为A,再由中序遍历可知A左边的节点为B,右边的节点为CDE,因此后序遍历为CBEFDA。'
  41. 设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行( )趟的分配和回收才能使得初始关键字序列变成有序序列。

  42. A:5 B:8 C:3 D:4
    AI参考:正确答案是D:4。基数排序每次分配和回收时,将一组记录分成若干组,每组记录的第一个记录的最低位关键字相等,分配和回收时不需要移动记录,只需要移动指针即可。本题中,初始记录关键字序列为(345,253,674,924,627),共5个关键字,需要进行4次分配和回收才能使得初始关键字序列变成有序序列。因此,本题答案为D。'
  43. 已知栈的最大容量为4。若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为

  44. A:3,2,5,4,1,6 B:1,4,6,5,2,3 C:5,4,3,2,1,6 D:2,3,5,6,1,4
    AI参考:已知栈的最大容量为4,进栈序列为1,2,3,4,5,6,那么在初始状态下栈内元素为[2, 3, 4, 5],接下来进行出栈操作的可能顺序为:A: 3,2,5,4,1,6 -> [3, 2, 5, 4, 1, 6](出栈顺序)B: 1,4,6,5,2,3 -> [4, 6, 5, 2, 3](出错)C: 5,4,3,2,1,6 -> [4, 3, 2, 1, 6](出栈顺序)D: 2,3,5,6,1,4 -> [3, 5, 6, 1, 4](出错)因此正确答案是C。'
  45. 在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依次执行

  46. A:.q->next=p;p->next=q B:q->next=p->next;p->next=q; C:q->next=p->next;p=q; D:p->next=q;q->next=p;
    AI参考:在非空线性链表中由p所指结点的后面插入一个由q所指的结点,正确的操作应该是:D:p->next=q;q->next=p;这是因为,首先将p的下一个节点指向q,然后再将q的下一个节点指向p,这样就完成了在p后面插入q的操作。选项A和B都是错误的,因为它们没有正确地处理p和q的链接关系。选项C也是错误的,因为它在插入q后,将p重新指向q,这会导致p链表出现环路。因此,正确答案是D:p->next=q;q->next=p。'
  47. 深度为k的完全二叉树中最少有( )个结点。

  48. A:2k-1-1 B:2k-1 C:2k-1 D:2k-1
    AI参考:正确答案是【D:2k-1 】。完全二叉树节点个数规律为:(1)最底层且是满层时,结点数=(层数+1)×2;例如第三层完全二叉树的结点数就为2×3=6。(2)非满层情况下,根结点在下层,其它结点全部放在上一层。(3)节点个数的计算以每个分支全部生成为基准。因此深度为k的完全二叉树最少有(k-1)层,最底层最少有2^(k-1)个节点,除去根节点,最少有(2^(k-1)-1)个节点,所以深度为k的完全二叉树最少有(2^(k-1)-1)*2个节点,答案为D选项。'
  49. 以下关于线性表的叙述,正确的是( )

  50. A:除第一个和最后一个元素外,其余每个元素都有一个且仅有一个前驱和后继元素 B:每个元素都有一个前驱和后继元素 C:线性表中至少有一个元素 D:线性表中元素的排列次序必须是由小到大或由大到小
    AI参考:关于线性表的叙述,正确的是每个元素都有一个前驱和后继元素。所以选项B是正确答案。线性表是一种数据结构,它具有一系列固定长度的元素,这些元素被存储在一块连续的内存空间中,每个元素有一个前驱元素和一个后继元素。所以选项A、C和D中的说法都过于绝对或者不准确。'
  51. 广义表运算: tail ((( a, b ), ( c , ( d, e )))) =( )。

  52. A:c,(d,e) B:(d,e) C:((c,(d,e))) D:(c,(d,e))
    AI参考:正确答案是D:(c,(d,e))。在广义表运算中,如果一个广义表是另一个广义表的子表,则称后者是前者的子表。在给定的表达式中,tail函数返回的是子表,所以答案是(c,(d,e))。'
  53. 一棵二叉排序树是由关键字集合{18,43,27,44,36,39}构建的,其中序遍历序列是( )

  54. A:44,43,39,36,27,18 B:18,43,27,44,36,39 C:18,27,36,39,43,44 D:树形未定,无法确定
    AI参考:B: 正确选项为:18,43,27,44,36,39。这是由于题目已经给出,一颗二叉排序树的中序遍历序列为 (44, 43, 39, 36, 27, 18),符合二叉排序树的中序遍历规则。因此,正确选项为B。其他选项中,C和D选项中存在重复的关键字,不符合二叉排序树的性质;而A选项则可能是一棵平衡二叉树或普通二叉树(视节点权值决定)。所以正确答案是B选项。'
  55. 设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是( )。

  56. A:N0=2N1+l B:N0=Nl+N2 C:N0=N1+1 D:N0=N2+1
    AI参考:正确答案是C:N0=N1+1。根据题目描述,二叉树中度数为0的结点数为N0,度数为1的结点数为N1,度数为2的结点数为N2。由于每个度数为0的节点最多有两个子节点(一个度数为1的节点和一个度数为2的节点),因此有N0=N1+1。因此,选项C是正确的。其他选项不符合题目描述。'
  57. 二路归并排序的时间复杂度为( )。

  58. A:O(n) B:O(n2) C: O(1og2n) D:O(nlog2n)
    AI参考:正确答案是D:O(nlog2n)。二路归并排序是采用分治法进行排序的算法,每次归并两个有序数组,合并操作的时间复杂度为O(n),最终的时间复杂度为O(nlog2n)。因此,选项D为正确答案。选项A、B、C都不符合实际情况。'
  59. 栈和队列的共同点是( )

  60. A:没有共同点 B:都是后进后出 C:只允许在端点处插入和删除元素 D:都是先进先出
    AI参考:正确答案是C:只允许在端点处插入和删除元素。栈和队列都是线性数据结构,它们的共同点是只允许在端点处插入和删除元素,这是它们的区别与联系之一。因此,选项C是正确的答案。选项A和D都过于片面,不符合共同点的含义。选项B描述了队列的特点,但不符合栈的特点。'
  61. 对稀疏矩阵进行压缩存储的目的是( )

  62. A:降低运算的时间复杂度 B:便于输入和输出 C:便于进行矩阵运算 D:节省存储空间
    AI参考:对稀疏矩阵进行压缩存储的目的是节省存储空间。稀疏矩阵是指大部分元素都是零的矩阵,通过压缩存储可以将非零元素集中存储,从而节省存储空间。这有助于减少计算机内存的使用,并可能加速运算过程。因此,正确答案是D:节省存储空间。'
  63. 一个栈的进栈序列是a,b,e.d,e,则栈的不可能的输出序列是( )

  64. A:abcde B:decba C:dceab D:edcba
    AI参考:正确答案是D:edcba。根据栈的特性,后进先出,所以不可能的输出序列是edcba。首先,a进栈,然后b进栈,再然后e进栈,此时栈内元素为a,b,e。接下来d进栈,此时栈内元素为a,b,e,d。最后e出栈,此时栈内元素为b,d。此时无论d是否出栈,都无法再出栈元素为a,b,e的顺序,因此不可能的输出序列是edcba。'
  65. 设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为( )。

  66. A:15,25,35,50,80,20,85,40,70,85 B:15,25,35,50,80,20,36,40,70,85 C:15,25,35,50,20,40,80,85,36,70 D:15,25,35,50,80,20,85,40,70,36
    AI参考:正确选项为C:15,25,35,50,20,40,80,85,36,70。首先,我们考虑给定的记录关键字序列(25,50,15,35,80,85,20,40,36,70)。该序列长度为11,其中包含了5个长度为2的有序子表。归并排序的过程是一步步将序列分成更小的部分(即子表),然后合并这些小部分以得到有序的序列。在一趟归并中,我们将长度为n的子表合并为长度为n+1的序列。在这个问题中,初始的关键字序列可以被分成两个长度为5的子表(分别为(15,35),(80,85),(20),(40),(36)和(70))。我们只需要合并这五个子表并输出结果即可。由于这是一个单趟归并操作,输出结果应是一个新的、长度为11的序列。现在来看选项:A选项(15,25,35,50,80,20,85,40,70)中的元素与初始序列的顺序不同;B选项(15,25,35,50,80,20,36)多出了一个元素36;D选项(15,25,35)仅剩下最初的三个元素;C选项(15,25,35,50,20,40)是最准确的选项。它准确地合并了五个子表并保持了正确的顺序。因此,正确答案是C选项:15,25,35,50,20,40,80,85,36,70。'
  67. 一个稀疏矩阵采用压缩后,和直接采用二维数组存储相比,会失去( )

  68. A:随机存取 B:以上都不对 C:顺序存储 D:输入/输出
    AI参考:一个稀疏矩阵采用压缩后,和直接采用二维数组存储相比,会失去顺序存储。稀疏矩阵通常采用“压缩后,和”的存储方式,这种方式利用了稀疏矩阵中大量元素为零的特点,通过压缩存储方式将稀疏矩阵转化为一个只含有少量非零元素的大表,从而节省存储空间。这种存储方式下,稀疏矩阵的元素按照顺序存储,无法实现随机存取。而采用二维数组存储稀疏矩阵时,可以通过行列索引实现随机存取。因此,采用压缩后,和存储方式会失去顺序存储。'
  69. 线性表采用链式存储结构时,要求内存中可用存储单元的地址( )

  70. A:连续和不连续都可以 B:一定是不连续的 C:必须是部分连续的 D:必须是连续的
    AI参考:在内存中,线性表采用链式存储结构时,要求内存中可用存储单元的地址必须是连续的。这是因为链式存储结构需要使用链表指针来链接各个元素,这就要求内存中的地址必须是连续的,以便于分配和管理。其他选项都不符合链式存储结构的特性。因此,正确答案是D:必须是连续的。'
  71. 已知二叉树的中序序列和后序序列均为ABCDEF,则该二叉树的先序序列为(   )

  72. A:ABCDEF B:FEDCBA C:FDECBA D:FBDCEA
    AI参考:答案:C推理过程:根据中序遍历和后序遍历可以画出二叉树,后序遍历最后一个元素是根节点,那么根节点是A,再根据中序遍历,A左边的节点排列顺序是BCD,右边的节点排列顺序是EF,所以先序遍历的顺序是FDECBA。因此,本题的正确选项为C。'
  73. 设有向图G中的有向边的集合E={<1,2>,<2,3>,<1,4>,<4,5>,<5,3>,<4,6>,<6,5>},则该图的一个拓扑序列为( )

  74. A:124635 B:123456 C:124653 D:146532
    AI参考:答案是C:124653。拓扑序列是一个依赖图结构的不完全序列,可以恢复出原来的图结构,并且不依赖于其他边和顺序。根据给定的有向边的集合,可以按照特定的顺序遍历节点,得到一个拓扑序列。该有向图的拓扑序列为1-2-4-6-5-3,因此选项C是正确的。'
  75. 设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( )。

  76. A:匹配 B:联接 C:求串长 D:求子串
    AI参考:正确答案是D:求子串。设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为求子串。该算法通常通过比较两个字符串中的字符和字符顺序来找到子串在主串中的起始位置。其他选项不符合题意。'
  77. 设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是( )。

  78. A:head==0 B:head->next==0 C:head->next==head D:head!=0
    AI参考:正确选项是【D:head!=0】。题目中提到“设一条单链表的头指针变量为head且该链表没有头结点”,说明链表没有头结点,因此头指针变量head不为0,即head!=0。因此,选项D是正确的。选项A、B、C都存在错误,因为题目中已经说明链表没有头结点,因此头指针变量head不等于0,而不是等于0。'
  79. 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )

  80. A:单链表 B:用头指针表示的单循环链表 C:顺序表 D:用尾指针表示的单循环链表
    AI参考:正确选项是B:用头指针表示的单循环链表。对于只在表的首、尾两端进行插入操作的线性表,其存储结构可以采用单循环链表。在这种存储结构中,链表的头指针和尾指针都指向链表的尾节点,形成一个循环结构。由于只在表的首尾两端进行插入操作,因此链表的中间部分不需要频繁地进行更新,所以采用单循环链表可以有效地减少存储空间的浪费和操作的复杂度。其他选项中,顺序表不适合用于这种存储结构,因为顺序表需要占用大量的连续存储空间,不适合用于链表的存储。单链表和用尾指针表示的单循环链表也不适合这种存储结构,因为它们需要频繁地更新中间部分的节点,会增加操作的复杂度和时间成本。'
  81. 在含有27个结点的二叉排序树上查找关键字为35的结点,则依次比较的关键字有可能是( )

  82. A:46,28,18,36,35 B:46,36,18,28,35 C:28,36,18,46,35 D:18,36,28,46,35
    AI参考:正确答案是D。在二叉排序树中查找关键字为35的节点时,需要从根节点开始,按照关键字的大小顺序进行比较,直到找到目标节点或者到达不能再向下比较的节点为止。因此,选项D中的关键字18、36、28、46、35依次比较的关键字有可能是在二叉排序树上查找关键字为35的节点时需要比较的关键字。'
  83. 以下关于链式存储结构的描述中,( )是不正确的。

  84. A:结点除自身信息外还包括指针域,因此存储密度不是很大。 B:结点除自身信息外还包括指针域,因此存储密度不是很大 C:可以通过计算直接确定第i个结点的地址。 D:插入删除方便,不必移动结点。
    AI参考:关于链式存储结构的描述中,(B:结点除自身信息外还包括指针域,因此存储密度不是很大)是不正确的。链式存储结构是用一组地址连续的存储单元存放数据元素,每个数据元素为一组相关联的数据结构的存储方式。每个节点除了存储该节点元素信息外,还需要存储下一个节点的位置,使得数据的存储是链接在一起的。因此,链式存储结构的存储密度较大。选项B描述错误,因为它认为由于存在指针域,所以存储密度不大。然而实际上,链式存储结构是通过连续的存储单元来表示数据的链接关系,因此其存储密度较大。选项A、C、D都是关于链式存储结构的正确描述。选项C描述了可以通过计算直接确定第i个节点的地址,选项D则提到了插入和删除操作方便,不需要移动节点。因此,选项B是不正确的。'
  85. 若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是( )

  86. A:SXSSXXXX B:SSSXXSXX C:SXXSXSSX D:SXSXXSSX
    AI参考:正确答案是D:SXSXXSSX。栈是一个后进先出(LIFO)的数据结构,初始状态为空,只能进行入栈(S)和出栈(X)操作。选项A和B中存在重复的入栈操作,不符合栈的特性;选项C中存在连续的出栈操作,不符合栈的特性;只有选项D符合栈的特性,可以进行合法操作。因此,正确答案是D。'
  87. 下列叙述中不符合m阶B树定义要求的是( )

  88. A:各结点内关键字均升序或降序排列 B:根结点最多有m个子树 C:所有叶结点都在同一层上 D:叶结点之间通过指针链接
    AI参考:下列叙述中不符合m阶B树定义要求的是所有叶结点都在同一层上。在m阶B树中,叶节点可以分布在不同的层上,而不是都在最底层的同一层上。其他选项都符合m阶B树的定义要求。因此,正确答案是C。'
  89. 对线性表进行二分查找时,要求线性表必须是( )

  90. A:以链式方式存储 B:以顺序方式存储,且结点按关键字有序排列 C:以链式方式存储,其结点按关键字有序排列 D:以顺序表存储
    AI参考:对线性表进行二分查找时,要求线性表必须是按关键字有序排列的顺序方式存储。因此,正确选项是B:以顺序方式存储,且结点按关键字有序排列。线性表以顺序方式存储时,可以方便地进行随机访问,时间复杂度较低。而二分查找算法正是利用了线性表的顺序存储结构,通过将待查找的元素与线性表中间位置的元素进行比较,缩小查找范围,从而提高查找效率。在选项中,只有B选项满足这一要求。其他选项要么不是以顺序方式存储,要么不是按关键字有序排列。'
  91. 在双向链表存储结构中,删除p所指结点时须修改指针( )

  92. A:p->next=p->next->next;p->next->prior=p; B:p->prior=p->next->next;p->next=p-->prior->prior; C:p->prior->next=p;p->prior=p->prior->prior; D:p->next->prior=p->prior;p->prior->next=p->next;
    AI参考:在双向链表存储结构中,删除p所指结点时,需要修改指针的选项是C:p->prior->next=p;p->prior=p->prior->prior;解释:双向链表中的每个节点包含两个指针,一个指向前一个节点,另一个指向后一个节点。当我们删除一个节点时,需要更新前一个节点和后一个节点的指针。所以选项C中,将p的后一个节点的指针指向前一个节点(即p的前一个节点),然后将p的前一个节点的指针指向p,从而完成了节点的删除。选项A、B、D都没有正确完成删除操作。'
  93. 广义表(a,(a,b),d,e,((i,j),k))的长度是( ),深度是( )。

  94. A:6,3 B:5,2 C:6,2 D:5,3
    AI参考:正确答案是D:5,3。广义表的长度为元素个数减去1,所以广义表(a,(a,b),d,e,((i,j),k))的长度是5。广义表的深度就是最深一层元素的层数,即深度为3。所以正确选项为D:5,3。'
  95. 设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为( )。

  96. A:40 B:45 C:20 D:30
    AI参考:正确答案是D:30。哈夫曼树是一种特殊的二叉树,它的特点是每个节点的两个子树都包含该节点的权值。对于权值为权值集合W={2,3,4,5,6},由该权值集合构造的哈夫曼树中带权路径长度之和为∑w(i)×log2(i)+1(i∈V),其中V是包含叶子节点的子树数,最终的路径长度为∑w(i)×log2(i),即2×3+3×4+4×5+5×6+6=30。因此,答案为D。'
  97. 稀疏矩阵的压缩存储一般采用( )存储方式。

  98. A:三元组表 B:二元组表 C:数组 D:链表
    AI参考:正确选项是【A:三元组表】。稀疏矩阵的压缩存储一般采用三元组表存储方式,即用一个三元组来表示非零元素的位置和值。这种存储方式可以大大减少存储空间,提高稀疏矩阵的存储效率。选项B、C、D虽然也是常见的矩阵存储方式,但不适合稀疏矩阵的存储。'
  99. 关键路径是事件结点网络中( )

  100. A:最长的回路 B:从源点到汇点的最短路径 C:从源点到汇点的最长路径 D:最短的回路
    AI参考:单选题,关键路径是事件结点网络中从源点到汇点的最长路径。答案C。选项A不是最准确;选项B是源点到汇点的最短路径,但不一定是关键路径;选项D最短的回路也不一定是关键路径。只有选项C最准确,它描述了关键路径的特征,即从项目开始到结束的最长事件链路。'
  101. 已知在顺序表中每个元素需占用8个存储单元,且LOC(a1)=100,则LOC(a5)=( )

  102. A:132 B:148 C:150 D:140
    AI参考:答案:B推理过程:顺序表中每个元素需占用8个存储单元,a5元素在第5个位置,即从1开始数第5个元素,所以起始地址的地址值要加3(计数从0开始),加上每个元素的偏移量8,即100+3*8=148,故答案为B。'
  103. 元素的进栈次序为A,B,C,D,E,则退栈中不可能的序列是( )

  104. A:B,C,D,E,A B:E,A,B,C,D C:E,D,C,B,A D:A,B,C,D,E
    AI参考:正确答案是D:A,B,C,D,E。进栈次序为A,B,C,D,E,说明栈的初始状态为空,然后依次将元素A、B、C、D、E压入栈中。当需要出栈时,遵循后进先出(LIFO)的原则,因此栈中的元素出栈顺序应为B、C、D、E、A。因此,不可能的序列是A,B,C,D,E,因为它违反了后进先出的原则。其他选项都符合栈的出栈规则。'
  105. 在栈中进行插入和删除操作的一端称为( )

  106. A:指定位置 B:栈顶 C:栈底 D:任意位置
    AI参考:在栈中进行插入和删除操作的一端称为栈底。选项A、D显然不合适,选项B虽然描述了栈顶,但在栈中插入和删除操作确实是在栈底进行的。因此,正确答案是C:栈底。'
  107. 下列四种排序中( )的空间复杂度最大。

  108. A:堆 B:快速排序 C:希尔排序 D:冒泡排序
    AI参考:正确答案是C:希尔排序。希尔排序是一种基于插入排序的算法,通过比较相距一定间隔的元素来工作,随着排序的进行,这个间隔逐渐减小,最终变为一个元素,因此希尔排序的空间复杂度是O(n^2)。而快速排序、冒泡排序和堆排序的空间复杂度都是O(n),因此C选项的空间复杂度最大。'
  109. 逻辑上通常可以将数据结构分为

  110. A:顺序结构和链式结构 B:线性结构和非线性结构 C:初等结构和组合结构 D:动态结构和静态结构
    AI参考:正确选项是A:顺序结构和链式结构。顺序结构指的是数据元素直接按照顺序排列,通常是线性排列,每个元素都有一个唯一的索引,通过索引可以直接访问任意一个元素。顺序结构通常适用于存储大量重复数据或者数据之间没有关联关系的情况。链式结构则是指数据元素之间通过指针或者其他方式相互连接,形成一个链表结构。链式结构适用于需要存储重复数据并且需要方便地插入和删除数据的情况,比如链式存储器、链式文件等。因此,在逻辑上通常可以将数据结构分为顺序结构和链式结构。'
  111. 数据结构中评价算法的两个重要指标是时间复杂度、空间复杂度。

  112. A:错 B:对
    AI参考:正确答案是B。根据问题中给出的信息,数据结构中评价算法的两个重要指标是时间复杂度和空间复杂度。因此,答案为B,即“对”。'
  113. 在 n个结点的无向图中,若边数大于n-1,则该图必存在环路。

  114. A:错 B:对
    AI参考:B:对。根据题目描述,如果图中存在边数大于n-1的情况,那么图中可能存在环路。因为环路是由多条边连接的闭合路径,所以当图中存在边数大于n-1时,有可能存在环路。因此,答案为B:对。'
  115. 一个字符串中任意个连续字符成为该串的子串。

  116. A:对 B:错

  117. 链式存储的特点是利用指针来表示数据元素之间的逻辑关系。

  118. A:对 B:错
    AI参考:正确答案是A:对。链式存储的特点是利用指针来表示数据元素之间的逻辑关系,通过指针实现数据的链接,从而实现数据的动态组织和扩展。因此,判断题中的描述是正确的。'
  119. 空格穿的长度为串中空格的个数。

  120. A:对 B:错
    AI参考:答案:B:错。空格穿的长度为串中空格的个数,这个说法是不正确的。空格穿应该是指将空格作为分隔符来分割字符串,而不是将空格个数作为长度。正确的长度应该是串中所有字符的个数,而不是空格的个数。'

温馨提示支付 ¥2.75 元后可查看付费内容,请先翻页预览!
点赞(1) dxwkbang
返回
顶部