赞
踩
专业定义:
通俗定义:
定义:任意一个节点的子节点的个数都不受限制
定义:任意一个节点的节点个数最多两个,且子节点的位置不可更改(有左右之分)
定义:在不增加树的层数的前提下,无法再多添加一个节点的二叉树
定义:
性质:
目的:
定义:n(n≥0)个互不相交的树的集合
树的存储最核心的是:以二叉树存储
二叉树的算法比较成熟:
所以
1)想要将一般的二叉树以数组方式存储的话,必须先将一般二叉树转化为完全二叉树再存储
为什么要添加无效节点(0表示空节点)?
存储有效节点方式?
2)以完全二叉树来存储优缺点
优点:
缺点:
节点结构包含3个域:数据域 data、左指针域 lchild、右指针域 rchild
二叉树链式存储的优缺点:
缺点:
优点:
把一个普通树转化成二叉树来存储具体转化方法:
只要能满足此条件,就可以把一个普通树转化为二叉树
tip:一个普通树转化成的二叉树,一定没有右子树
先把森林转化为二叉树,再去存储二叉树
把B和G当做A的兄弟,再用一般树转化为二叉树方法即可
人类造出三种规则:先序、中序、后序这三种遍历,都可以把一个非线性的树转化成一个线性序列
这样方便可以在我们硬件上存储(因为现实中很多问题是非线性的,但硬件的内存条存储是线性的,故想要在内存上存储必须先线性化)
本质:递归访问
三种遍历算法的总结:
按照1,2,3,4的层次顺序,对二叉树中的各个结点进行访问
层次遍历需要借助一个队列
若我们已知一课二叉树的先序、中序、后序中的任何一种,都不能把原始二叉树给还原出来。
我们只有通过(先序和中序) 或 (中序和后序)可以还原出原始的二叉树,但是通过先序和后序是无法还原出原始的二叉树的。
1)已知先序和中序求后序
解释:
先看先序,第一个出现A即为根节点
然后看中序,找A的位置,来确定左、右子树
先序找根,中序找左右子树
2)已知中序和后序求先序
解释一下:
先看后序最后出现是根节点A
再看中序可知左、右子树,想确定左、右子树的根节点
同理,再确定左、右子树
3)总结:
已知(中序+后序)或(中序+前序)或(中序+层序)可得一颗二叉树
1)线索二叉树的来源
2)引入线索二叉树的目的:
3)线索二叉树的节点结构
4)线索二叉树的存储结构
5)线索二叉树的分类
定义:
一、中序线索二叉树
1)定义:
2)构造中序线索二叉树
3)中序线索二叉树的存储
二、先序线索二叉树
1)定义:
2)构造先序线索二叉树
3)先序线索二叉树的存储
三、后序线索二叉树
1)定义:
2)构造后序线索二叉树
3)后序线索二叉树的存储
tip
tip
参考文献
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。