Py算法与数据结构

06 树结构

节点关系、深度优先、层序与表达式树

对应本节 12 道题。点击题目展开答案和理由,保留此前生成的详细解析。
第 01 题 问题 1

根、父节点、子节点分别表示什么?

参考答案

根没有父节点;父节点直接连接其子节点。

解析

树内的层级关系由连接决定,节点的数值大小未必相关。

第 02 题 问题 2

叶节点一定存最小值吗?

参考答案

不一定。

解析

叶只表示没有子节点;普通树没有数值顺序约束。

第 03 题 问题 3

有序树中的“有序”是否一定指按键大小排序?

参考答案

不一定,通常指兄弟节点位置/次序有意义。

解析

不要把有序树、二叉树与二叉搜索树混为一谈。

第 04 题 问题 4

二叉树每个节点有几个子节点?

参考答案

最多两个,通常区分左与右。

解析

二叉并不要求每个节点恰好有两个孩子。

第 05 题 问题 5

根 A,左 B、右 C;B 左 D、右 E。前序遍历顺序?

参考答案

A,B,D,E,C。

解析

前序为根、左子树、右子树。

第 06 题 问题 6

同一棵树的中序遍历顺序?

参考答案

D,B,E,A,C。

解析

中序为左子树、根、右子树;普通树中序不保证键有序。

第 07 题 问题 7

同一棵树的后序遍历顺序?

参考答案

D,E,B,C,A。

解析

后序为左子树、右子树、根;常用于先处理子结构。

第 08 题 问题 8

同一棵树的层序遍历顺序?

参考答案

A,B,C,D,E。

解析

用 FIFO 队列逐层访问,通常左孩子先入队。

第 09 题 问题 9

遍历 n 个节点的时间是多少?

参考答案

O(n),假定处理每个节点为常数时间。

解析

每个节点访问一次;单条搜索路径的成本不能当作完整遍历成本。

第 10 题 问题 10

递归遍历的额外栈空间由什么决定?

参考答案

树高 h,通常为 O(h)。

解析

均衡树约 O(log n),退化链形树可 O(n)。

第 11 题 问题 11

表达式树 ((a+b)*(c-d)) 的根和两子树运算符是什么?

参考答案

根 *,左子树 +,右子树 −。

解析

运算符节点连接操作数子树;后序可用于求值。

第 12 题 问题 12

二叉搜索树中序有序,普通二叉树也必然有序吗?

参考答案

不必然。

解析

只有全树满足 BST 的左右键范围规则时,才能推出中序有序。