#2020. GESP六级第二次练习题单

GESP六级第二次练习题单

  1. 有关下图的二叉树,说法正确的是( )。 image

{{ select(1) }}

  • 既是完全二叉树也是满二叉树。
  • 既是二叉搜索树也是平衡二叉树。
  • 非平衡二叉树。
  • 以上说法都不正确。
  1. N个节点的二叉搜索树,其查找的平均时间复杂度为( )。 {{ select(2) }}
  • O(1)
  • O(N)
  • O(logN)
  • O(N2N^2)
  1. N个节点的双向循环链,在其中查找某个节点的平均时间复杂度是( ){{ select(3) }}
  • O(1)
  • O(N)
  • O(logN)
  • O(N2N^2)
  1. 有关下⾯C++代码的说法正确的是( ) image {{ select(4) }}
  • 上述代码构成单向链表
  • 上述代码构成双向链表
  • 上述代码构成循环链表
  • 上述代码构成指针链表
  1. 有关下⾯C++代码不正确的说法是( )

image {{ select(5) }}

  • 该代码可⽤于求解⼆叉树的深度
  • 代码中函数 Depth( ) 的参数 T 表示根节点,非根节点不可以作为参数
  • 代码中函数 Depth( ) 采⽤了递归⽅法
  • 代码中函数 Depth( ) 可⽤于求解各种形式的二叉树深度,要求该二叉树节点⾄少有 left 和 right 属性
  1. 下⾯有关树的存储 ,错误的是( ) {{ select(6) }}
  • 完全⼆叉树可以⽤ list 存储
  • ⼀般⼆叉树都可以⽤ list 存储,空⼦树位置可以⽤ None 表⽰
  • 满⼆叉树可以⽤ list 存储
  • 树数据结构,都可以⽤ list 存储

7 .构造⼆叉树 [1,2,3,null,4]() {{ select(7) }}

  • 1(2()(4))(3)
  • 1(2(3)())(4)
  • (1,2(3),(4))
  • (1,(2)(3),(4))
  1. 队列中,元素的添加和删除是按照( )原则进行的。{{ select(8) }}
  • 先进先出
  • 先进后出
  • 最小值先出
  • 随机进出
  1. 以下代码希望能在一棵二叉排序树中搜索特定的值,请在横线处填入( ),使其能正确实现相应功能。{{ select(9) }} image
  • target < root->left
  • target < root->val
  • target > root->val
  • target > root->left
  1. 一个有 124 个叶子节点的完全二叉树,最多有( )个结点。{{ select(10) }}
  • 247
  • 248
  • 249
  • 250
  1. 下面的代码片段用于反转单链表,请进行( )修改,使其能正确实现相应功能。{{ select(11) }} image
  • current->next = next; 应该改为 current->next = prev;
  • ListNode* next = current->next; 应该改为 ListNode* next = prev->next;
  • current != nullptr 应该改为 current->next != nullptr
  • ListNode* prev = nullptr; 应该改为 ListNode* prev = head;
  1. 向一个栈顶为hs的链式栈中插入一个指针为s的结点时,应执行( )。

{{ select(12) }}

  • hs->next = s;
  • s->next = hs; hs = s;
  • s->next = hs->next; hs->next = s;
  • s->next = hs; hs = hs->next;
  1. 下面定义了一个循环队列的类,请补全判断队列是否满的函数,横向上应填写( )。 image

{{ select(13) }}

  • return (rear + 1) % capacity == front;
  • return rear % capacity == front;
  • return rear == front;
  • return (rear + 1) == front;
  1. 一棵5层的满二叉树中节点数为( )。

{{ select(14) }}

  • 31
  • 32
  • 33
  • 16
  1. 有些算法或数据结构在 C/C++语⾔中使⽤指针实现,⼀个典型的例⼦就是链表。因此,链表这⼀数据结构在 C/C++语⾔中只能使⽤指针来实现。( ) {{ select(15) }}
  • 正确
  • 错误
  1. 二叉搜索树的左右⼦树也是二叉搜索树。( )。 {{ select(16) }}
  • 正确
  • 错误
  1. 二叉搜索树查找的平均时间复杂度为o(logN)。() {{ select(17) }}
  • 正确
  • 错误
  1. ⼆叉搜索树可以是空树(没有任何节点)或者单节点树(只有⼀个节点),或者多节点。如果是多节点,则左节点的值小于父节点的值,右节点的值大于父节点的值,由此推理,右节点树的值都大于根节点的值,左节点树的值都小于根节点的值。() {{ select(18) }}
  • 正确
  • 错误
  1. 同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。 () {{ select(19) }}
  • 正确
  • 错误
  1. 完全二叉树的任意一层都可以不满。 {{ select(20) }}
  • 正确
  • 错误
  1. 删除单向链表中的节点,只需知道待删除节点的地址即可,无需访问前一个节点。 {{ select(21) }}
  • 正确
  • 错误
  1. 二叉搜索树的查找操作的时间复杂度是 𝑂(​N​)。{{ select(22) }}
  • 正确
  • 错误
  1. n个节点的双向循环链表,在其中查找某个节点的平均时间复杂度是O(logn)( ) {{ select(23) }}
  • 正确
  • 错误
  1. 完全二叉树可以用数组存储数据。( ) {{ select(24) }}
  • 正确
  • 错误