7.树
-
之前的栈,队列都是一对一的关系
-
树是一种:一对多的关系
7.1树的定义
错误的示范:
7.2结点分类
7.3结点的关系
- 结点D的祖先是B,A
- 结点A是节点B的双亲
- 结点D,E,F是结点B的孩子、
- 结点D,E,F 互相称为兄弟
7.4结点的层次
7.5结点的其他概念
7.6树的存储结构
-
双亲表示法(利用数组的结构)
第一列为:数组的下标
第二列data为:数组存放的data
第三列parent为:该结点的双亲存放位置。比如结点G,它的双亲就是D,而D在数组下标的位置则是7,因此G的双亲位置填入7
-
孩子表示法
-
孩子表示法方案一
空间里面存放的是指针:该指针是存放指向子节点的地址
-
孩子表示法方案二(利用数组+链表的结构)
分析:先创建一个数组,数组的第一块内容可以自行存放数据data,
数组的第二块内容存放:该节点下的第1个子节点的地址(就像链表一样),
然后这第1个子节点的数据域存放data所在的下标, 指针域存放第2个子节点的地址。
如果没有子节点,就放入一个NULL
例如:
A后面的空间,存放了第1个子节点的地址,子节点的1意味着数组下标1的数据B,子节点1后面空间则存放第2个子节点的地址。
-
双亲孩子表示法
代码架构