数据结构——树 基本概念 顺序存储 链式存储 树与二叉树之间转换
存储方式
树的存储可以表示为顺序存储或者链式存储
顺序存储
利用顺序存储可以用三种形式表示:
双亲表示法:(存储它们父亲的下标,有利于找双亲)
孩子表示法:(存储他们孩子的下标,没有的话存储-1,有利于找孩子)
双亲孩子表示法:也就是将前两个表示法合并起来,这样都好找
参照图:
如何表示看下图:(a)都是存父亲的数组下标位置(b)都是存孩子的下标位置 (c)两者合并
链式存储树
看一下怎么又顺序单链表表示孩子:
每个first地址都是指向他们的孩子位置
树之间的转换
1.树转为二叉树
孩子兄弟表示法如何表示:
2.二叉树转为树
右斜线都是兄弟,直接化为同一层,左边为儿子,直接转换过来
3.森林转二叉树
和之前树二叉树类似,兄弟都在右斜线上
这里看下二叉树概念:
(把树变为二叉树从而更好进行数据存储和访问)
二叉树的性质:
对于n0 = n2+1:
————————————————————————————————————————
对于二叉树的顺序存储:
将ABCD分别看成下标0123,设置两个数组根据下标分别存放左右孩子
链式存储二叉树
每个节点只有两个孩子,分别为左右孩子