树
(1)基本了解:
a.树的定义:由有限个结点构成的集合;
b.特点:仅有就一个根结点,且其他的子树都会有前躯;
叶子只有父结点,没有子结点,树属于非线性结构,依然有顺序存储,及链式存储;
c.了解各种名词:根结点,前驱,后躯,子结点,父结点,右兄弟,左孩子,树的度(在每个节点所用的子结点的个数中最大的一个),树的深度(数的层数)。
(2)重点需知:
a.结点个数的计算:假如树的深度是k:总的结点数为:2^k-1;第k层的结点数为:2^(k-1)-1;
b.总结点n的范围(依然假设有k层):2^(k-1)-1<n<=2^(k)-1;(或者2^(k-1)<=n<2^(k));
c.由b可总结的树深度的求法:k=log2(n)+1;
D. n表示总结数,n0表示0度结点,n1表示1度结点,n2表示2度结点;
n=n0+n1+n2;
n=n1+2n2+1;
由此我们可以推出一个公式:n0=n2+1;即叶子的总数=2度结点+1;
2.二叉树
(1)基本了解
a.特点:仅有一个根结点;
且每个子结点最多只有两个孩子;
b.二叉树的访问类型
1).先序遍历:根、左、右
2).中序遍历:左、根、右
3).后序遍历:左、右、根
(2)特别了解
1)满叉树、完全树
2).解释:
满叉树:即在倒数第二层的节点均属于2度结点;
完全树:在最后一层;从右向左依次连续的删除多个结点(叶子);且我们会发现在最后一层的叶子都是向左边靠拢的;并且,若存在1度结点,那么该结点的孩子一定是左孩子;