"BinaryTree" (数据结构)
"BinaryTree"
表示一个可变的二叉树,其中存储在每个节点上的值为普通表达式.
更多信息
- 二叉树可基于与每个节点关联的数据访问节点,以及表示最多有两个分支的层级关系:
-
CreateDataStructure["BinaryTree",v] 创建具有指定初始值 v 和空的左子树和右子树的新的 "BinaryTree" CreateDataStructure["BinaryTree",v{l,r}] 创建具有指定初始值 v 和指定左子树和右子树的新的 "BinaryTree" Typed[x,"BinaryTree"] 指定 x 的类型为 "BinaryTree" - 对于类型为 "BinaryTree" 的数据结构,可进行以下操作:
-
ds["BreadthFirstScan",f] 对 ds 执行广度优先扫描,将每个节点的数据传递给 f 时间:O(n) ds["Copy"] 返回 ds 的副本 时间:O(n) ds["Data"] 返回存储在节点 ds 的数据 时间:O(1) ds["InOrderScan",f] 对 ds 执行中序扫描,将每个节点的数据传递给 f 时间:O(n) ds["Left"] 返回 ds 的左子树的数据结构 时间:O(1) ds["LeftNullQ"] 如果 ds 的左子树为空则返回 True 时间:O(1) ds["NullQ"] 如果 ds 为空则返回 True 时间:O(1) ds["PostOrderScan",f] 对 ds 执行后序扫描,将每个节点的数据传递给 f 时间:O(n) ds["PreOrderScan",f] 对 ds 执行前序扫描,将每个节点的数据传递给 f 时间:O(n) ds["Right"] 返回 ds 的右子树的数据结构 时间:O(1) ds["RightNullQ"] 如果 ds 的右子树为空则返回 True 时间:O(1) ds["SetData",v] 将存储在节点 ds 的数据设为 v 时间:O(1) ds["SetLeft",l] 将节点 ds 的左子树设为 l 时间:O(1) ds["SetRight",r] 将节点 ds 的右子树设为 r 时间:O(1) ds["ValidQ"] 如果 ds 是有效的树则返回 True 时间:O(n) ds["Visualization"] 返回 ds 的可视化 时间:O(n) - 还支持以下函数:
-
dsi===dsj 如果 dsi 等于 dsj 则为 True FullForm[ds] ds 的完全形式 Information[ds] 关于 ds 的信息 InputForm[ds] ds 的输入形式 Normal[ds] 将 ds 转换成普通表达式
范例
打开所有单元关闭所有单元基本范例 (2)
可用 CreateDataStructure 创建新的 "BinaryTree":
范围 (1)
信息 (1)
可用 CreateDataStructure 创建新的 "BinaryTree":