算法题-查找所有下游途径节点

167 阅读1分钟

【题目描述】

数据格式如下,这是一个多叉树,每一个key代表出发节点,对应的value代表与该节点连接的下一层所有节点,写一个算法,实现功能:找出每一个节点的所有下游节点。

dic = {
        1: [2],
        2: [3, 5, 6],
        3: [4],
        6: [7, 8]
    }

代码:

def function(dic, T, keys_set, ip, new_list_):
    low_list = dic[ip]
    inter_set = keys_set.intersection(low_list)
    if not inter_set:
        T = False
        return T, new_list_
    else:
        for inter in inter_set:
            ips = dic[inter]
            new_list_.extend(ips)
            T, new_list_ = function(dic, T, keys_set, inter, new_list_)
        if not T:
            return T, new_list_


if __name__ == "__main__":

    dic = {
        1: [2],
        2: [3, 5, 6],
        3: [4],
        6: [7, 8]
    }
    T = True
    keys_set = set(dic.keys())
    T, new_list_ = function(dic, T, keys_set, 1, [2])
    print(new_list_)

思路:

看代码,自己悟(^o^)