树的实现
顺序存储
双亲表示法(结点:结点数据+结点双亲数组下标,树:结点数组+结点数量)
定义
- 用一组连续的存储空间存储树的结点,同时在每个结点中,用一个变量存储该结点的双亲结点在数组中的位置
特点
- 双亲表示法可以根据parent值找到该节点的双亲结点,时间复杂度为O(1)
例
链式存储
孩子表示法
定义
- 把每个结点的孩子结点排列起来存储成一个单链表。所以n个结点就有n个链表;如果是叶子结点,那么这个结点的孩子单链表时空的;然后n个单链表的头指针又储存在一个顺序表(数组)中
- 需要设计两种结点结构类型:1、孩子链表的结点,2、每个孩子链表的表头结点(存在数组中
例
.