由于二叉树是一种特殊的树,这种特殊的树,采用顺序存储结构就可以实现。既然是顺序存储结构,必然的是通过数组来实现了。
有一种极端情况,就是深度为k的右斜树,只有k个结点,如果想要存储它,就要将它转换为二叉树,那么必然的需要2^k-1个结点,这么多结点中,只有k个结点是有效数据,所以,会造成空间的浪费。所以,顺序存储结构只适用于完全二叉树。
那么,对于那种类似于极端情况的树,该如何存储呢?显然,顺序存储并不适合它。那么,可以考虑采用链式存储。也就是二叉链表。因为,二叉树每个结点最多有两个孩子,所以,在设计结构时,有一个变量用来存放数据,还有两个指针变量指向左孩子和右孩子。结构定义如下:
typedef struct BiNode{ TElemType data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。