1.树的类型定义:
(1)数据对象D:D是具有相同特性的数据元素的集合。
(2)数据关系R:若D为空集,则成为空树
否则:在D中存在唯一的称为根的数据元素root。当n>1时,其余结点可分为n(n>0)个互不相交的有限集T1, T2, T3, ..., Tm,其中每一棵子集本身又是一课符合本定义的树,称为根root的子树。
2.树的基本操作:
(1)查找类:
①Root(T):求树的根结点
②Value(T, cur_e):求当前结点的元素值
③Parent(T, cur_e):求当前结点的双亲结点
④LeftChile(T, cur_e):求当前结点的最左孩子
⑤RightSibling(T, cur_e):求当前结点的右兄弟
⑥TreeEmpty(T):判定树是否为空树
⑦TreeDepth(T):求树的深度
⑧TraverseTree(T, Visit()):遍历树
(2)插入类:
①InitTree(&T):初始化树
②CreateTree(&T, definition):按定义构造树
③Assign(&T, cur_e, value):给当前结点赋值
④InsertChild(&T, &p, i, root):将以root为根的树插入为结点p的第i棵子树
(3)删除类:
①ClearTree(&T):将树清空
②DestroyTree(&T):销毁树的结构
③DeleteChile(&T, &p, i):删除结点p的第i棵子树
3.有向树:有确定的根,树根和子树根之间为有向关系。
4.有序树:子树之间存在确定的次序关系。
5.无序树:子树之间不存在确定的次序关系。
6.线性结构对比树形结构:
(1)线性结构:第一个元素无前驱,最后一个元素无后继,其它元素一个前驱一个后继
(2)树形结构:根结点无前驱,多个叶子结点无后继,其它元素一个前驱多个后继
7.
原文地址:https://www.cnblogs.com/hou36/p/9899018.html