二叉树的存储结构
顺序存储
- 由于二叉树比较灵活,顺序表示会浪费大量的空间,因此一般不使用,除非是完全二叉树或满二叉树
链式表示
静态链表
- 以线性结构存储,所以对于存储空间的分配不是很灵活,如果实现已知长度的树,要插入删除数据就不可以
二叉树遍历的递归算法
二叉树遍历应用
二叉树遍历的非递归算法
树的存储结构
顺序表示
双亲表示
优点:结构简单,一个顺序表就能存储一棵树
缺点:是静态结构,不方便做节点的插入和删除;有存储空间浪费;由于对树的应用大都是从节点找子女,而双亲表示常用于从节点找双亲,而应用在从节点找子女比较麻烦,要全扫描一遍。
链式结构
多重链表(孩子表示法)
- 与二叉链表相似,浪费空间会比较多
孩子链表
从数据和关系两部分考虑,先构造数组,存储每一个节点(数据部分);子女和父母的关系则用连式结构表示。即先用数组存储所有节点,再每个节点生成单链表存储该节点的所有子女
树的左子女右兄弟表示法(二叉链表表示)
如果把普通树改造成非常熟悉的二叉树形式,就可以形成一一对应关系,就可以用二叉树存储普通树,又不丢失普通树的信息
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。