数据结构与算法(五)—— 广义表

        广义表是线性表的推广,又称列表。线性表的元素仅限于原子项,即每个数据元素只能是一个数或一个记录,如果放松对线性表元素的这种限制,允许它们自身具有结构,由此就产生了广义表的概念。

一、广义表的定义

        广义表是n(n>=0)个元素的有限序列,其中每个元素是原子项或者是一个广义表,通常记作GL=(a1,a2,a3,...,an)。GL是广义表的名字,n是它的长度。为了区分原子项和广义表,在书写上习惯用大写字母表示广义表,用小写字母来表示原子。通常用圆括号将广义表括起来,用逗号分隔其中的元素。当广义表非空时,称第一个元素a1是GL的表头(head),其他元素组成的表称为GL的表尾(tail)。

下面列举一些广义表的例子:

(1) A=() —— A是一个空表,其长度为零;

(2) B=(a) —— B是一个只有一个原子的广义表,其长度为1;

(3) C=(a,(b,c)) —— C是一个长度为2的广义表,第一个元素是原子,第二个元素是子表;

(4) D=(A,B,C) = ((),(a),(a,(b,c))) —— D是一个长度为3的广义表,其中三个元素均为子表;

(5) E=(C,d) = ((a,(b,c)),d) —— E是一个长度为2的广义表,第一个元素是子表,第二个元素是原子;

(6) F=(e,F) = (e,(e,(e,...))) —— F是一个递归的表,它的长度为2,第一个元素是原子,第二个元素是表自身,展开后它是一个无限的广义表。

        一个表

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值