数据结构之广义表的相关知识点

一,广义表的基本概念:

     广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构(即可以有子表)。它被广泛的应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP 语言的程序也表示为一系列的广义表。(更多内容,可参阅程序员在旅途)

二,广义表的基本表示:

     1,  概念角度分析:

 广义表是n个元素a1,a2,a3…. an组成的有限序列,通常记为:LS = (a1,a2,a3…. an);

其中,LS代表表名,ai 代表表中元素即为表元素,其既可以为单个原子元素又可以是一个广义表当ai为为广义表是成为LS的一个子表(此处体现出来了递归思想)。

★特别提醒:

     a,  n为表的长度,当n = 0时,LS为空表;n >0时,表的第一个表元素称为广义表的表头(head),除此之外,其它表元素组成的表称为广义表的表尾(tail)。即当a1为表 头元素时,(a2,a3 ……an)为表尾元素。

      b,   因为元素可以为子表,所以就体现出来层次结构(关于分层,请看下图)。

      2,举例说明:

              A=( );    //A是一个空表

              B=(e);   //表B有一个原子

              C=(a, (b,c,d) );  //两个元素为原子a和子表(b,c,d)

              D=(A,B,C);  //有三个元素均为列表

              E=(a,E);  //递归的列表,包含两个元素,一个是单元素a,另一个是子表,但该子表是其自身.所以,E相当于一个无限的广义表( a,(a,(a,…))).

      3,几个常见术语:

a,表的深度:表展开后所含括号的层数; 

b,表的长度:长度为第一层的元素个数(原子和子表都只算一个);

c,表头、表尾。

4,图形化理解表:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值