5.5 广义表的存储结构

本文介绍了广义表的两种链式存储结构:表头表尾法和链表法,并通过实例详细解释了每种存储方式下广义表的构成及特点。
  • 广义表的中数据元素可以是原子,也可以是列表
  • 由于元素可以是原子也可以是列表,因此有两种结点类型。
    因此用顺序存储表示不方便,通常采用链式存储结构,一个结点表示一个元素。
    1、原子节点:标志域和值域
    2、表结点:标志域,指示表头的指针域,指示表尾的指针域。

在这里插入图片描述

表头表尾法,每一个表都看做表头加上表尾。
把任何一个广义表、表结点都分解成表头表尾结构

typedef enum 
{
   
   
	ATOM,	// 0,表示原子
	LIST	// 1,表示子表
}ElemTag;

typedef struct GLNode
{
   
   
	ElemTag tag;	//公共部分,用于区分原子节点和表结点
	union			//根据 tag 二选一
	{
   
   				//要么是原子节点的值域,要么是表结点的头尾节点指针域
		AtomType atom;
		struct {
   
    struct GLNode *hp, *tp } ptr
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值