GESP Python 6级 2025.03
在面向对象编程中,类是一种重要的概念。下面关于类的描述中,不正确的是
类是一个抽象的概念,用于描述具有相同属性和行为的对象集合。
类可以包含属性和方法,属性用于描述对象的状态,方法用于描述对象的行为。
类可以被实例化,生成具体的对象。
类一旦定义后,其属性和方法不能被修改或扩展。
哈夫曼编码是一种用于数据压缩的算法。以下关于哈夫曼编码的描述中,不正确的是
哈夫曼编码是一种变长编码,频率高的字符使用较短的编码,频率低的字符使用较长的编码。
在构造哈夫曼树时,频率越低的字符离根节点越近,频率越高的字符离根节点越远。
哈夫曼编码的生成过程基于贪心算法,每次选择频率最低的两个节点进行合并。
哈夫曼编码的生成过程基于贪心算法,每次选择频率最低的两个节点进行合并。
以下代码实现了树的哪种遍历方式?
class TreeNode:
def __init__(self, val=0, left=None,right=None):
self.val = val
self.left = left
self.right = right
def traverse(root):
if root is None:
return
print(root.val, end=" ")
traverse(root.left)
traverse(root.right)
前序遍历
中序遍历
后序遍历
层次遍历
以下关于完全二叉树的代码描述,正确的是
from collections import deque
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def is_complete_tree(root):
if root is None:
return True
q = deque()
q.append(root)
has_null = False
while q:
node = q.popleft()
if node is None:
has_null = True
else:
if has_null:
return False
q.append(node.left)
q.append(node.right)
return True
该代码用于判断一棵树是否为满二叉树
该代码用于判断一棵树是否为完全二叉树
该代码用于判断一棵树是否为二叉搜索树
该代码用于计算树的高度
以下代码实现了二叉排序树的哪种操作?
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def op(root, val):
if root is None:
return TreeNode(val)
if val < root.val:
root.left = op(root.left, val)
else:
root.right = op(root.right, val)
return root
查找
插入
删除
遍历
给定字符集 {A, B, C, D} 的出现频率分别为 {5, 1, 6, 2} ,则正确的哈夫曼编码是
A: 0, B: 100, C: 11, D: 101
A: 11, B: 100, C: 0, D: 101
A: 0, B: 101, C: 11, D: 100
A: 10, B: 101, C: 0, D: 100
关于动态规划的描述,正确的是
动态规划算法的时间复杂度总是低于贪心算法。
动态规划要求问题必须具有最优子结构和重叠子问题两个性质。
动态规划通过递归实现时不需要存储中间结果。
动态规划的核心思想是将问题分解为互不重叠的子问题。
以下代码中,类的构造函数被调用了( )次
import copy
class MyClass:
def __init__(self):
print("Constructor called!")
if __name__ == "__main__":
obj1 = MyClass()
obj2 = copy.deepcopy(obj1)
1
2
3
0
以下代码中function1()实现了循环队列的哪种操作?
class CircularQueue:
def __init__(self, k):
self.size = k
self.arr = [0] * k
self.front = -1
self.rear = -1
def is_full(self):
return (self.rear + 1) % self.size == self.front
def is_empty(self):
return self.front == -1
def fuction1(self, value):
if self.is_full():
return False
if self.is_empty():
self.front = 0
self.rear = (self.rear + 1) % self.size
self.arr[self.rear] = value
return True
入队
出队
查看队首元素
判断队列是否为空
以下代码实现了二叉树的深度优先搜索(DFS),并统计了叶子节点的数量。横线上应填写
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def count_leaf_nodes(root):
if root is None:
return 0
stack = []
stack.append(root)
count = 0
while stack:
node = stack.pop()
if node.left is None and node.right is None:
count += 1
if node.right:
stack.append(node.right)
if node.left:
_______________________
return count
stack.append(node.left)
stack.append(node.right)
stack.delete(node.left)
stack.delete(node.right)
