郝斌数据结构入门--P63-树的存储

郝斌数据结构入门--P63-树的存储

完全二叉树:

先把一棵树转换为满二叉树,再把最底层最右边删掉,意味着下图黄色框可以删掉,不保存。剩下的一棵树就是完全二叉树。

为什么一个二叉树以数组的方式存储时,必须要求这个数是完全二叉树?

上图红色是真正的点(有效点)。如果只存放有效的点,无法确定这棵树是怎样构造出来的。别人不知道以前的树是怎样子的,所以不能只保留有效的点。

二叉树的存储

连续存储[完全二叉树]:

优点:查找某个节点的父节点和子节点速度很快(也包括判断有没有子节点)

缺点:耗用内存空间过大

链式存储

一般树的存储

双亲表示法:求父节点方便

孩子表示法:求子节点方便

双亲孩子表示法:求父节点和子节点都很方便

二叉树表示法:把一个普通树转化成二叉树来存储,

                            具体转换方法:设法保证任意一个节点的

                                                                左指针域指向它的第一个孩子

                                                                右指针域指向它的兄弟

                                          只要能满足此条件,就可以把一个普通树转化为二叉树

                                          一个普通树转化成的二叉树一定没有右子树

森林的存储

猜你喜欢

转载自blog.csdn.net/xiaodingqq/article/details/83857444