广义表

1.head是去掉最外层括号,保留第一个逗号前的东西
2.tail是去掉head所保留的那部分以及第一个逗号(不需要去掉括号)
以下以具体题目为例进行分析

例1.广义表A=(a,b,(c,d),(e,(f,g))),则Head(Tail(Head(Tail(Tail(A)))))的值为( )。

tail第一步:Tail(A)=						(b,(c,d),(e,(f,g)))
tail第二步:Tail(Tail(A))=					((c,d),(e,(f,g)))
head第三步:Head(Tail(Tail(A)))=			(c,d)
tail第四步:Tail(Head(Tail(Tail(A))))=		(d)
head第五步:Head(Tail(Head(Tail(Tail(A)))))=d

广义表的深度与长度

1.长度

	定义:广义表的长度,指的是广义表中所包含的数据元素的个数。
	注:由于广义表中可以同时存储原子和子表两种类型的数据,因此在计算广义表的长度时规定,
    广义表中存储的每个原子算作一个数据,同样每个子表也只算作是一个数据。
	例1.在广义表 {a,{b,c,d}} 中,它包含一个原子和一个子表,因此该广义表的长度为 2。
	例2.在广义表 {{a,b,c}} 中只有一个子表 {a,b,c},因此它的长度为 1。

2.深度

广义表的深度,可以通过观察该表中所包含括号的层数间接得到。

例1.,广义表 {{1,2},{3,{4,5}}} 中,子表 {1,2} 和 {3,{4,5}} 位于同层,此广义表中包含 3 层括号,因此深度为 3。
全部评论

相关推荐

11-27 12:36
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务