二叉树:概念、操作与遍历
1. 二叉树基础
在编程的世界里,树是一种常见的数据结构,就像数组和链表一样。单链表可以看作是一种特殊的树,将单链表顺时针旋转 90 度,初始节点在顶部,最终节点在底部,每个节点只有一个子节点,这就是多路树的一个特例,我们可以称单链表为一元树。
多路树是一种更通用的概念,除根节点(树顶部的节点)外,所有节点都有且只有一个父节点,可以有零个或多个子节点。如果每个节点最多有 n 个子节点,这样的树被称为 n 元树。
当每个节点最多有两个子节点时,这种结构就是二叉树。习惯上,节点的两个子节点分别称为左子节点和右子节点。以下是一个二叉树节点的记录布局:
type
TtdChildType = (
{types of children}
ctLeft,
{..left child}
ctRight);
{..right child}
TtdRBColor = (
{colors for the red-black tree}
rbBlack,
{..black}
rbRed);
{..red}
PtdBinTreeNode = ^TtdBinTreeNode;
TtdBinTreeNode = packed record
btParent : PtdBinTreeNode;
btChild : array [TtdChildType] of PtdBinTreeNode;
btData : pointer;
case boolean of
fals
超级会员免费看
订阅专栏 解锁全文
843

被折叠的 条评论
为什么被折叠?



