二叉树的存储结构

有两种实现二叉树抽象数据类型的存储结构,顺序存储和链式存储结构。

1.顺序存储结构

当数据处理过程中,二叉树的大小和形态不发生剧烈的动态变化时,可以采用顺序存储方式,即使用数组来表示二叉树的抽象数据类型。

(1)完全二叉树的数组表示。

自顶向下,从左到右的顺序连续给出各个结点的顺序序列,按照该序列的各个结点数序存放在一个一维数组中。

(2)一般二叉树的表示。

表示方法完全仿照完全二叉树。但是 一般二叉树的部分结点度可能为1,在编号时,遇到空子树,应该假设存在此子树,即顺序存储时,把该位置留出来。显然,这样可能会导致数组大量元素为空,浪费存储空间。


2.链式存储结构

(1)二叉链表。

二叉树的每一个结点至少应当包括三个域,分别是数据域data,左孩子指针域Lchild,右孩子指针域Rchild。这种链表结构称为二叉链表。

二叉树的二叉链表存储结构类型如下;

struc BintreeNode{

Type data;      //结点的数据域

BintreeNode *Lchild;

BintreeNode *Rchild;};

(2)三叉链表。

为了找到双亲结点,可以在节点中再增加一个双亲指针域parent,这种结构称为三叉链表。

二叉树的三叉链表存储结构类型如下;

struc BintreeNode{

Type data;      //结点的数据域

BintreeNode *Lchild;

BintreeNode *Rchild;

BintreeNode *Parent;

};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值