森林是m(m≥0)棵互不相交的树的集合。 在树结构中,结点之间的关系又可以用家族关系 描述,定义如下: 孩子、双亲结点子树的根称为这个结点的孩子, 而这个结点又被称为孩子的双亲。 子孙以某结点为根的子树中的所有结点都被称 为是该结点的子孙。 祖先从根结点到该结点路径上的所有结点。 兄弟同一个双亲的孩子之间互为兄弟。 堂兄弟双亲在同一层的结点互为堂兄弟。 请单赤鼠标左键换页!
森林 是m(m≥0)棵互不相交的树的集合。 在树结构中,结点之间的关系又可以用家族关系 描述,定义如下: 孩子、双亲 结点子树的根称为这个结点的孩子, 而这个结点又被称为孩子的双亲。 子孙 以某结点为根的子树中的所有结点都被称 为是该结点的子孙。 祖先 从根结点到该结点路径上的所有结点。 兄弟 同一个双亲的孩子之间互为兄弟。 堂兄弟 双亲在同一层的结点互为堂兄弟
2.树的基本运算 常用操作: (1)构造一个树 CreateTree(① (2)清空以T为根的树 ClearTree( (3)判断树是否为空 TreeEmpty(T (4)获取给定结点的第论个孩子 Child(T, node i) (5)获取给定结点的双亲 Parent(T,node) (6)遍历树 Traverse(T 对树遍历的主要目的是将非线性结构通过遍历过程 线性化,即获得一个线性序列。树的遍历顺序有两种, 种是先序遍历,即先访问根结点,然后再依次用同 样的方法访问每棵子树;另一种是后序遍历,即先依 请单赤鼠标左键换页!
2. 树的基本运算 常用操作: (1) 构造一个树 CreateTree (T) (2)清空以T为根的树 ClearTree(T) (3)判断树是否为空 TreeEmpty(T) (4)获取给定结点的第i个孩子 Child(T,node,i) (5)获取给定结点的双亲 Parent(T,node) (6)遍历树Traverse(T) 对树遍历的主要目的是将非线性结构通过遍历过程 线性化,即获得一个线性序列。树的遍历顺序有两种, 一种是先序遍历,即先访问根结点,然后再依次用同 样的方法访问每棵子树;另一种是后序遍历,即先依
5.1.2树的存储结构 1.双亲表示法 树的双亲表示法主要描述的是结点的双亲关系。 请单鼠标左键换页!
5.1.2 树的存储结构 1. 双亲表示法 树的双亲表示法主要描述的是结点的双亲关系
下标 info paren 0123456789 ABCDEFGH 000 3666 图5-3 请单鼠标左键换页!
图 5-3 下标 info paren t 0 A -1 1 B 0 2 C 0 3 D 0 4 E 1 5 F 1 6 G 3 7 H 6 8 I 6 9 J 6 H I J E F G B C D A A B C D E F G H I J
类型定义: #define max tree node size 1oo typedef struct i TEntryType info; int parent; 3 ParentNode typedef struct ParentNode item MAX TREE NODE SIZE; intn;∥树中当前的结点数目 iParentTree 请单鼠标左键换页!
类型定义: #define MAX_TREE_NODE_SIZE 100 typedef struct { TEntryType info; int parent; } ParentNode; typedef struct { ParentNode item[MAX_TREE_NODE_SIZE]; int n; //树中当前的结点数目 }ParentTree;