您的位置:首页 > 理论基础 > 数据结构算法

二叉树的存储结构

2017-09-30 15:45 204 查看
由于二叉树是一种特殊的树,这种特殊的树,采用顺序存储结构就可以实现。既然是顺序存储结构,必然的是通过数组来实现了。

有一种极端情况,就是深度为k的右斜树,只有k个结点,如果想要存储它,就要将它转换为二叉树,那么必然的需要2^k-1个结点,这么多结点中,只有k个结点是有效数据,所以,会造成空间的浪费。所以,顺序存储结构只适用于完全二叉树。

那么,对于那种类似于极端情况的树,该如何存储呢?显然,顺序存储并不适合它。那么,可以考虑采用链式存储。也就是二叉链表。因为,二叉树每个结点最多有两个孩子,所以,在设计结构时,有一个变量用来存放数据,还有两个指针变量指向左孩子和右孩子。结构定义如下:

typedef struct BiNode{

TElemType data;
struct BiTNode *lchild, *rchild;

}BiTNode, *BiTree;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构