首页 > 编程知识 正文

二叉树的二叉链表存储,二叉树的三叉链表存储结构

时间:2023-05-06 13:31:30 阅读:159121 作者:85

二叉树中有(1)排列方式(2)链表方式两种存储方式

(1)数组存储方式

上面两个二叉树对应的链表存储如下:

采用层序遍历方式对二叉树的各个节点进行编号,将节点数据存储在相应的编号下具有方便的优点。

知道被二叉树覆盖着。 (是除叶节点外所有节点均有左右子叶,叶节点位于最下层的二叉树。 适合用数组保存,但如果不是二叉树,用数组保存会浪费存储空间。 如果二叉树非常巨大,这部分的浪费就会变得巨大。 因此,一般来说,我们用连锁记忆结构记忆二叉树更为普遍。

)2)二叉树链表

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

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

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

为了便于访问某个节点的父节点(节点的子节点和父节点),还可以将指向父节点的父字段parent添加到链表节点。 每个节点由四个域组成,其节点结构如下:

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

二叉树的链表结构灵活、操作方便,对于一般的二叉树,还可以比顺序记忆结构更节约空间。 因此,二叉链表是最常用的二叉树存储方式。

struct BinTreeNode //定义节点由数据字段、左右指针组成{ int data; BinTreeNode *lchild,*rchild; (}Bitree;

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