基于上一篇的认识(还未认识的朋友可以看这https://blog.csdn.net/weixin_51471186/article/details/117395837)
知道了二叉树是什么东西后就要知道它的内在的存储方式与更好的使用方法。
知道我们在学习数据结构时,最开始接触的就是顺序存储结构和链式存储结构,但在树中它有点特殊,就是它确实可以用顺序存储结构和链式存储结构,但是为了更好的提高效率,它不当当需要的当个指向而是多个指向,就好像是双向链表与循环链表的结合
这样便有了各种奇特的连接方式。
1.双亲表示法,言外之意就是以双亲作为索引的关键词的一种存储方式。就是按上图的从最开始的结点就行链接直接从头开始。
(*T)->lchild
2.孩子表示法,就是从下面的子叶开始索引到它上层的树从下往上。
T->lchild=T;//并将这个树里的嵌套地左指针指向它地本身
3.双亲孩子表示法就是上面的结合一起来,子叶可以指向树,树也可以指向子叶。这也是现在常用的用法。
记住:在使用这些方法时不可避免地会开辟较多地空间,但是却不可避免,于是就有了一个,来都来了地想法,开辟都开辟了那就利用空间来提高效率,可以不需要从头开始遍历,这样大大地提高效率。
对于二叉树的度的计算:非考试人员可以不用记,上网查就好了。
一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1 这个推导,首先我们再假设度为1的结点数为n1,则二叉树T的结点总数n=n0+n1+n2 ,连接数等于总结点数n-1且等于n1+2*n2 于是n-1=n1+2*n2 所以n0+n1+n2-1=n1+n2+n2 则n0=n2+1