可以看出,在树的定义中用了递归概念,即用树来定义树。因此,树形结构的算法也常常使用递归方法(比较好写..
以图片树3为例
树3的2结点的度为2;8,9,10,11,12为叶子结点(度为0,又称终端结点),除这5个结点之外,树3的其他的结点都是分支结点;对于结点5,结点10,11为它的子结点(在二叉树中,10被称为左孩子结点,11为右孩子结点),结点4是他的兄弟结点(拥有同一个双亲结点2),结点1-2-5-11为结点1到结点5的路径,路径长度为3,则在该路径中,1,2,5都是结点11的祖先,相对而言,11是,1,2,5的子孙,结点11的层数为4,该树深度为4。这三颗树放一起也能叫做森林...(说得略挫
(1)Initiate(tree):初始化一棵空树tree。
(2) Root(x):求结点x所在树的根结点。
(3) Parent(tree,x):求树tree中结点x的双亲结点。
(4) Child(tree,x,i):求树tree中结点x的第i个孩子结点。
(5) RightSibling(tree,x):求树tree中结点x右边的第一个兄弟结点(也称右兄弟节点)
(6) Insert(tree,x,i,s):把以s为根结点的树插入到树tree中座位结点x得第i棵子树
(7) Delete(tree,x,i):在树tree中删除结点x的第i棵子树。
(8) Traverse(tree):是树的遍历操作,即按某种方式访问树tree中的每个结点,且使每个结点只被访问一次。遍历操作是非线性结构中非常常用的基本操作,许多对树的操作都是借助该操作实现的。
原文:https://www.cnblogs.com/graytido/p/10403011.html