一、基本定义
1. 树(Tree):n( n>=0 )个结点的有限集,对于任意一棵非空树:
(1)有且仅有一个特定的称为根的结点(Root);
(2)当n>1时,其余结点可分为m个互不相交的有限集,且每一个集合都是一棵树,称为子树(SubTree)。
(为递归定义)
2.度(Degree)
3.叶子(Leaf)
4.兄弟(Sibling)
5.层次(Level)
6.二叉树(Binary Tree)
性质:(1)深度为k,至多有2^k - 1个结点(满二叉树);
存储结构:(1)顺序存储:数组;(2)n个结点的完全二叉树,深度:(log2n)取下整 + 1;
(2)链式存储:数据、左指针、右指针、(父亲指针);
遍历二叉树:(1)先序:根——左——右;
线索二叉树:(2)中序:左——根——右;
(3)后序:左——右——根。
lchild ltag value rtag rchild ltag / rtag 0:lchild/rchild指向左/右孩子
1: lchild/rchild指向前/后缀
二、存储结构
1.双亲表示
2.孩子表示
3.孩子兄弟表示