树的存储结构和遍历树、森林关系
树与二叉树之间的转换最直接简单的就是通过孩子兄弟存储结构与二叉链表的存储方法实现
树的存储结构:
1、双亲链表存储结构:顾名思义只存双亲结点位置,查找双亲非常方便,但是找孩子结点需要遍历整棵树复杂度,一般不用该结构。
2、孩子链表存储结构:同理寸孩子结点,查找双亲不方便。
3、双亲孩子链表存储:对于查找双亲和孩子都很方便;
4、孩子兄弟链表结构:三个域:左孩子中间数值右兄弟,类似与二叉树存储结构,这种存储方式应用很广泛,因为它等同于二叉树的遍历,无论先根、后根遍历都与二叉树的遍历结果一样
树的遍历:
1、先根遍历:a输出根的值,b递归遍历左孩子树(相对于二叉树的左子树),c递归遍历右兄弟树(相对于二叉树右子树)
2、后根遍历:a递归遍历左孩子树(相对于二叉树的左子树),b输出根的值,c递归遍历右兄弟树(相对于二叉树右子树)
3、层次遍历:从上到下、同层就左到右进行遍历
森林遍历:
1、先根遍历:等同于从第一个树左到右进行先根遍历(等同于森林转换成二叉树之后的二叉树遍历)
2、后根遍历:等同于从第一个树左到右进行后根遍历(等同于森林转换成二叉树之后的二叉树遍历)
3、层次遍历:从第一棵树开始层次遍历,接着第二棵……以此类推。
---------------------
版权声明:本文为CSDN博主「Peanut_Huang」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_36533300/article/details/80250702