广义表的广度(长度)和深度的计算
广义表的长度
广义表的长度(广度)指:广义表中所包含的数据元素的个数 例如,在广义表 {a,{b,c,d}} 中,它包含一个原子和一个子表,因此该广义表的长度为 2。 再比如,广义表 { {a,b,c}} 中只有一个子表 {a,b,c},因此它的长度为 1。
广义表的深度
广义表的深度,可以通过观察该表中所包含括号的层数间接得到。这里需要注意,数左括号(或右括号)时同一层次的多个括号只计算一次 比如:广义表 { {1,2},{3,{4,5}}} 中,子表 {1,2} 和 {3,{4,5}} 位于同层,此广义表中包含 3 层括号,因此深度为 3。
举例:
题目1:广义表 (a,(a,b),d,e,((i,j),k)) 的长度是( ),深度是( ) 其长度为5、深度为3、为什么呢?
长度的求法为最大括号中的逗号数加1, 即为: a后面的逗号, (a,b)后面的逗号, d后面的逗号, e后面的逗号,((i,j),k)前面的逗号, 总计有四个,那么广义表的长度是4+1=5;
题目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
