由于二叉树是一种特殊的树,这种特殊的树,采用顺序存储结构就可以实现。既然是顺序存储结构,必然的是通过数组来实现了。
成都创新互联主要从事成都网站制作、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务和政,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
有一种极端情况,就是深度为k的右斜树,只有k个结点,如果想要存储它,就要将它转换为二叉树,那么必然的需要2^k-1个结点,这么多结点中,只有k个结点是有效数据,所以,会造成空间的浪费。所以,顺序存储结构只适用于完全二叉树。
那么,对于那种类似于极端情况的树,该如何存储呢?显然,顺序存储并不适合它。那么,可以考虑采用链式存储。也就是二叉链表。因为,二叉树每个结点最多有两个孩子,所以,在设计结构时,有一个变量用来存放数据,还有两个指针变量指向左孩子和右孩子。结构定义如下:
typedef struct BiNode{ TElemType data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree;