什么是广义表?
- 广义表是线性表的推广,是一种非线性的数据结构。
- 广义表中放松对表元素的原子限制,容许它们具有其自身结构。
- 广义表被广泛的应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP 语言的程序也表示为一系列的广义表。
- 广义表是 n(n≥0)个数据元素a1,a2,…,ai,…,an 的有序序列,一般记作:
ls=(a1,a2,…,ai,…,an)
其中:ls 是广义表的名称,n 是它的长度。每个ai(1≤i≤n)是ls 的成员,它可以是单个元素,也可以是一个广义表,分别称为广义表ls 的单元素和子表。 - 当广义表ls 非空时,称第一个元素a1 为ls 的表头(head),称其余元素组成的表(a2,…,ai,…,an)为ls 的表尾(tail)。显然,广义表的定义是递归的。
- 为书写清楚起见,通常用大写字母表示广义表,用小写字母表示单个数据元素,广义表用括号括起来,括号内的数据元素用逗号分隔开。下面是一些广义表的例子:
A =()
B =(e)
C =