数据结构-广义表的存储结构(两种)

本文介绍了广义表的两种存储结构:头尾链表和扩展线性链表。头尾链表的存储结构包含表节点和原子节点,其中表节点有hp和tp指针,原子节点包含atom值。扩展线性链表中,所有节点都有三个部分,用于连接同层节点和处理子表。两种结构通过不同的方式处理层次关系和内部节点的链接,适应不同场景的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构-广义表的存储结构(两种)

一、头尾链表的存储结构

头尾链表的存储结构由两种节点结构组成:

表结点

表节点由三部分组成,tag为标志,tag=1表示表节点,tag=0表示原子节点,hp和tp表示两个指针,hp指向该节点的下一层的节点,tp指向同一层的后一个节点。

原子节点

原子节点由两部分部分组成,tag为标志,tag=1表示表节点,tag=0表示原子节点,atom表示该节点的值

在这里插入图片描述

例如,广义表 {a,{b,c,d}} 是由一个原子 a 和子表 {b,c,d} 构成,而子表 {b,c,d} 又是由原子 b、c 和 d 构成,用链表存储该广义表如图所示

在这里插入图片描述

二、扩展线性链表的存储结构

这种结构,无论表节点还是原子节点,都由三部分组成。这种结构先建立一个表节点,然后为本层的每一个节点建立一个节点,把这些节点用第三个指针域串联在一起,然后检查每一个节点,如果该节点保存的是一个原子节点,则直接在中间值域填入该值,如果是一个表节点,则从中间指针域引出一个新的节点

在这里插入图片描述

还是上面那个例子,广义表 {a,{b,c,d}} 用扩展线性链表的存储结构如下

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值