1. 程式人生 > >資料結構:廣義錶轉置

資料結構:廣義錶轉置

問題描述

設計演算法,將指定的廣義表的內容原地逆置。例如:若廣義表GL為[1, [2, 3], 4, [5, [6, 7], 8], 9],逆置後GL為 [9, [8, [7, 6], 5], 4, [3, 2], 1] 。

基本思路

如題,一眼就能看出問題具有遞迴性,因此採用遞迴來求解,程式碼就非常簡單了。

Python實現

#encoding = utf8

def reverse_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)