廣義表的長度
廣義表的長度(廣度)指:廣義表中所包含的數據元素的個數
例如,在廣義表 {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