首页 > 编程知识 正文

二叉链表存储树,则根结点的左指针是,二叉链表是逻辑结构吗

时间:2023-05-03 17:41:06 阅读:159120 作者:1933

链式存储结构

二叉树的连锁记忆结构是使用链表表示一棵二叉树,通过连锁表示要素的逻辑关系。

通常的方法是,链表中的每个节点由三个域、数据域和左右指针域组成,左右指针分别用于提供该节点左孩子和右孩子所在链接点的存储地址。 其节点结构如下

在此,data域存储了某个节点的数据信息; lchild和rchild分别存储指向左边孩子和右边孩子的指针,如果左边孩子或右边孩子不存在,则对应的指针字段的值用空(或NULL )表示。 使用这样的节点结构表示的二叉树的连锁存储结构被称为二叉树连锁表,如图58所示。

(a )一棵二叉树) b )二叉链表的记忆结构

图5-8二叉树链表示意图

为了方便访问某个节点的父节点,还可以将父字段parent添加到链接列表中的节点,使其指向父节点。 每个节点由四个域组成,其节点结构如下:

该记忆结构便于寻找孩子的节点,便于寻找父母的节点; 但是,相对于双链表的存储结构,空间开销有所增加。 用这种节点结构表示的二叉树的连锁存储结构被称为三叉链表。

图5-9示出了图5-8(a )所示二叉树的三叉链表。

图5-9二叉树的三叉链表是示意图

虽然二叉树的链表中无法直接从节点上找到双亲,但是二叉树的链表结构灵活且操作方便,所以一般的二叉树比顺序记忆结构更节约空间。 因此,二叉链表是最常用的二叉树存储方式。

结构5-2二叉树的链式存储

#define datatype char //定义二叉树元素的数据类型为字符typedef struct node //定义节点由数据字段、左右指针组成{ Datatype data; struct node *lchild,*rchild; (}Bitree;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。