問題描述
設計演算法,將指定的廣義表的內容原地逆置。例如:若廣義表gl為[1, [2, 3], 4, [5, [6, 7], 8], 9],逆置後gl為 [9, [8, [7, 6], 5], 4, [3, 2], 1] 。
基本思路
如題,一眼就能看出問題具有遞迴性,因此採用遞迴來求解,**就非常簡單了。
python實現
#encoding = utf8
defreverse_table(table):
'''遞迴
'''if
not isinstance(table,list) or len(table)==0: #
元素不是list 或者 list的長度為0則返回
return
for sub_table in
table:
reverse_table(sub_table)
table_len =len(table)
for i in range(table_len//2):
table[i], table[table_len-i-1] = table[table_len-i-1], table[i] #
switch
if__name__ == "
__main__":
table=[1, [2, 3], 4, [5, [6, 7], 8], 9]
reverse_table(table)
print(table)
資料結構 廣義表
廣義表 lists,又稱列表 是一種非線性的 資料結構 是線性表 的一種推廣。即廣義表中放鬆對錶元素的原子限制,容許它們具有其自身結構。思想 廣義表就類似下圖的結構,他的大體 下圖第一行 相當於乙個帶頭結點的鍊錶,思想,首先要有乙個頭結點為head型別,每乙個廣義表有且只有乙個head,而後每個節點...
資料結構 廣義表
概念 陣列和廣義表可以看成是線性表在下述含義上的擴充套件,表中資料元素本身也是乙個資料結構。廣義表也可以看作是線性表的推廣。1 廣義表的元素可以是子表,而子表的元素還可以包含子表。2 列表可以被其他列表所共享。3 列表可以是乙個遞迴的表,也就是說列表也可以是自身的子表。由於廣義表裡面的資料元素可以具...
資料結構 廣義表
一 問題概述 廣義表是非線性的資料結構,是由若干個元素組合而成的,廣義表中可以有子表,類似這樣的 我們以c a,b,c,d 為例,將它定義為這樣的資料結構 我們會給定字串的形式,如 char str a,b,c,d 然後將它轉化為如上的資料結構。二 解決辦法 1 將符號 看作是頭節點,然後將是數值的...