4.4二叉树的存储结构
顺序存储
定义:用一组地址连续的存储单元依次自上而下,自左至右存储完全二叉树上的结点元素。
![[外链图片转存失败(img-WUb9j9GL-1566445546323)(C:\Users\liuhao\AppData\Roaming\Typora\typora-user-images\1566445049137.png)]](https://i-blog.csdnimg.cn/blog_migrate/429b5403dc39a69080049522bd0d18d9.png)
![[外链图片转存失败(img-iBk9ZvOD-1566445546324)(C:\Users\liuhao\AppData\Roaming\Typora\typora-user-images\1566445068430.png)]](https://i-blog.csdnimg.cn/blog_migrate/fbca17d45b7140557089c48bf297d2bb.png)
这种存储浪费存储空间所以考虑链式。
链式存储:
二叉树每个结点最多两个孩子,所以设计二叉树的结点结构时堪虑两个指针指向该结点的两个孩子。
二叉链表:
typedef struct BiTNode{
ElemType data; //数据域
struct BiTNode *lchild,*rchild; // 指向该结点的左右孩子指针
}BiTNdo,*BiTree; /// 二叉树结点结构
三叉链表:
typedef struct BiTNode{
ElemType data; //数据域
struct BiTNode *parent, *lchild,*rchild; // 指向该结点的左右孩子指针
}BiTNdo,*BiTree; /// 二叉树结点结构
本文深入探讨了二叉树的两种主要存储方式——顺序存储和链式存储。顺序存储适用于完全二叉树,但存在空间浪费的问题。链式存储通过二叉链表或三叉链表实现,灵活高效,适合大多数二叉树结构。
299

被折叠的 条评论
为什么被折叠?



