用链式数据结构表示有根树的问题。
树的结点用对象表示,每个结点都含有一个关键字key。
二叉树:
属性p:指针指向父结点
left:指向左孩子
right:指向右孩子
如果x.p=NIL,则x是根结点
如果结点x没有左孩子,则x.left=NIL。右孩子的情况类似。
属性T.root指向整棵树T的根结点。如果T.root=NIL.则该树为空。
分支无限制的有根树:
有一个巧妙的方法可以用来表示孩子数任意的树。对任意n个结点的有根树,只需要O(n)的存储空间。
左孩子右兄弟表示法:
每个结点中包含:
1.x.left_child指向x最左边的孩子结点。
2.x.right-sibling指向x右侧相邻的兄弟结点。