廣義表的廣度(長度)和深度的計算

廣義表的長度

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章