广义表的广度(长度)和深度的计算

广义表的长度

广义表的长度(广度)指:广义表中所包含的数据元素的个数
例如,在广义表 {a,{b,c,d}} 中,它包含一个原子和一个子表,因此该广义表的长度为 2。
再比如,广义表 {{a,b,c}} 中只有一个子表 {a,b,c},因此它的长度为 1。

广义表的深度

广义表的深度,可以通过观察该表中所包含括号的层数间接得到。这里需要注意,数左括号(或右括号)时同一层次的多个括号只计算一次
比如:广义表 {{1,2},{3,{4,5}}} 中,子表 {1,2} 和 {3,{4,5}} 位于同层,此广义表中包含 3 层括号,因此深度为 3。

举例:

链接:https://www.nowcoder.com/questionTerminal/ae53f5eae2364ef2a720a9991064eaf0
来源:牛客网

题目1:广义表 (a,(a,b),d,e,((i,j),k)) 的长度是( ),深度是( )
其长度为5、深度为3、为什么呢

长度的求法为最大括号中的逗号数加1
即为:
a后面的逗号,
(a,b)后面的逗号,
d后面的逗号,
e后面的逗号,((i,j),k)前面的逗号,
总计有四个,那么广义表的长度是4+1=5;

深度的求法为上面每个元素的括号匹配数加1的最大值,
a为0+1=1;
(a,b)为1+1=2;
d,e类似a;
((i,j),k)为2+1=3;
故深度为3。
原文:https://blog.csdn.net/w_k_l/article/details/78983957

题目2:求广义表E((a,(a,b),((a,b),c)))的长度和深度。

本题也可以这样解E((a,(a,b),((a,b),c)))

E((a,(a,b),((a,b),c)))
E(x) x=((a,(a,b),((a,b),c))) 最外层0个逗号 长度是0+1 所以长度是 1
深度求解:
在这里插入图片描述
所以深度为 4

发布了70 篇原创文章 · 获赞 126 · 访问量 7595

猜你喜欢

转载自blog.csdn.net/qq_37717494/article/details/105074513