首页 > 其他分享 >广义表的定义及head和tail操作

广义表的定义及head和tail操作

时间:2022-10-24 22:46:37浏览次数:32  
标签:head Head tail 表头 Tail LS 广义 长度

广 义 表

广义表一般记作:

​ LS=(a1,a2,.....an),其中LS是广义表(a1,a2,.....an)的名称,n是其长度。在广义表的定义中,ai可以是单个元素,也可以是广义表,分别称为广义表LS的原子和字表。习惯上,用大写字母表示广义表的名称,用小写字母表示原子(广义表中的数据元素通常采用链式存储结构)。

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

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

(2) B=(e) B只有一个原子e,其长度为1.

(3) C=(a,(b,c,d)) C的长度为2,两个元素分别为原子a和子表(b,c,d)。

(4) D=(A,B,C) D的长度为3,3个元素都是广义表。显然,将子表的值代入后,则有D=(( ).(e),(a,(b,c,d)))

(5) E=(a,E) 这是一个递归的表,其长度为2,。E相当于一个无限的广义表 E=(a,(a(a,.......)))。

(6) L=(a,(b,c,d)) L的表头是a, 表尾是 ((b.c.d))。

2.广义表中最重要的两个运算如下。

(1)GetHead(LS)(取表头):取出的表头为非空广义表的第一个元素,他可以是一个单原子,也可以是一个子表。
(2)GetTail(LS)(取表尾): 取出的表尾为除去表头之外,由其余元素构成的表。即表尾一定是一个广义表。

复杂点的例子

广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为( ). Head(Tail(Head(Tail(Tail(A)))))

第一步: Tail(A):(b,(c,d),(e,(f,g)))

第二步:Tail(Tail(A)) : ((c,d),(e,(f,g)))

第三步: Head(……) : (c,d)

第四步: Tail(……) : (d)

第五步: Head(……) : d

标签:head,Head,tail,表头,Tail,LS,广义,长度
From: https://www.cnblogs.com/yin-jihu/p/16823322.html

相关文章