zoukankan      html  css  js  c++  java
  • 数据结构:广义表转置

    问题描述

    设计算法,将指定的广义表的内容原地逆置。例如:若广义表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)
  • 相关阅读:
    小工具
    git
    git如何做个人构建
    菜鸟教程
    Xftp和Xshell
    IDEA
    webStorm
    HBuilder
    chrome浏览器
    Vue-Server-Renderer
  • 原文地址:https://www.cnblogs.com/walter-xh/p/10035697.html
Copyright © 2011-2022 走看看