【数据结构】广义表的实现

本文介绍了广义表这一非线性数据结构,包括其概念、存储结构(采用链式存储,结点包含头、数据元素和子表)以及C++实现,强调了广义表在递归应用中的重要性,并提供了广义表类`GeneralList`的详细实现代码。
摘要由CSDN通过智能技术生成
【前言】学完了顺序表,链表这些线性的数据结构,现在开始进入非线性的数据结构了。难度也比线性结构更大,本篇文章对广义表这种数据结构进行介绍并附上其实现的代码,广义表的实现主要应用递归,通过广义表可以更加理解和灵活使用递归,希望能给学习这块知识的朋友们带来帮助。

一、广义表概念
广义表是线性表的推广,是一种非线性的数据结构,也有人称其为列表。
举几个例子:
(1)A=()  //A是一个空表
(2)B=(b) //B有一个元素
(3)C=(a, (b, c,  d)) //C有两个元素分别是a和字表(b, c, d)
(4)D=(a, (a, (a, . . .))) //递归的表,相当于一个无限的列表。
从上面几个例子,我们可以得出重要的结论:
列表的元素可以是数据元素或子表,列表可以是一个递归的表。

二、广义表的存储结构:
由于广义表的元素可以具有不同的结构(数据元素或子表),所以难以用顺序存储结构表示,通常采取链式存储结构

怎么来设置结点的结构呢?
我们设置三种结构的结点:
<1>头 HEAD <2>数据元素VALUE <3>子表 SUB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值