6.1.2树的抽象数据类型数据集合:树的结点集合,每个结点由数据元素和构造数据元素之间关系的指针组成。操作集合:(1)双亲结点parentO:把当前结点的双亲结点置为当前结点。(2)左孩子结点leftChildO:把当前结点的左孩子结点置为当前结点。(3)右兄弟结点rightSiblingO:把当前结点的右兄弟结点置为当前结点。(4)遍历树traverse(vs):按某种遍历方法访问树的每个结点,且每个结点只访问一次
数据集合 :树的结点集合,每个结点由数据元素和构 造数据元素之间关系的指针组成。 操作集合: (1)双亲结点parent() :把当前结点的双亲结点置为 当前结点。 (2)左孩子结点leftChild():把当前结点的左孩子结 点置为当前结点。 (3)右兄弟结点rightSibling() :把当前结点的右兄弟 结点置为当前结点。 (4)遍历树traverse(vs) :按某种遍历方法访问树的 每个结点,且每个结点只访问一次。 6.1.2 树的抽象数据类型
6.1.3树的存储结构1.双亲表示法2.孩子表示法3.双亲孩子表示法4.孩子兄弟表示法
6.1.3 树的存储结构 1.双亲表示法 2.孩子表示法 3.双亲孩子表示法 4.孩子兄弟表示法
1双亲表示法双亲表示法就是用指针表示出每个结点的双亲结点。对于使用仿真指针的双亲表示法来说,每个结点应有两个域,一个是数据元素域,另一个是指示其双亲结点在数组中下标序号的仿真指针域
1 双亲表示法 双亲表示法就是用指针表示出每个结点的双亲结点。 对于使用仿真指针的双亲表示法来说,每个结点应 有两个域,一个是数据元素域,另一个是指示其双 亲结点在数组中下标序号的仿真指针域
树及其使用仿真指针的双亲表示法dataparent0A-1B0120C3D1BC4E15F1E6G27H4H184(b)(a)
树及其使用仿真指针的双亲表示法 A D E F G C H I B 0 1 2 3 4 5 6 7 8 A B C D E F G H I data parent -1 0 0 1 1 1 2 4 4 (a) (b)
2孩子表示法孩子表示法就是用指针表示出每个结点的孩子结点。root常规指针的孩子表示法
2 孩子表示法 孩子表示法就是用指针表示出每个 结点的孩子结点。 A D E F G C H I B A B C D E F G H I ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ root ∧ 常规指针的孩子表示法