当前位置 博文首页 > wang785994599的博客:树的遍历

    wang785994599的博客:树的遍历

    作者:[db:作者] 时间:2021-09-06 18:58

    树的结构如图:

    广度优先搜索:

    class Queue(object):
        def __init__(self):
            self.items = []
            self.head = 0
            self.tail = 0
        def append(self,node):
            self.items.append(node)
            self.tail += 1
        def get(self):
            return self.items[self.head]
    #树
    map_list = [ #0,1   0,1
        [0,1,1,-1,-1],
        [1,0,-1,1,-1],
        [1,-1,0,-1,1],
        [-1,1,-1,0,-1],
        [1,-1,1,-1,0],
    ]
    point = Queue()
    #初始在0点
    point.append(0)
    
    while point.head<point.tail:
        for i in range(5):
            if map_list[i][point.head] == 1 and i not in point.items:
                print(i)
                point.append(i)
        point.head+=1
    if __name__ == '__main__':
        print(point.items)

    深度优先搜索

    #-1代表不连通 1代表连通 0代表到自己的距离
    import sys
    sys.setrecursionlimit(10000)
    map_list = [ #0,1   0,1
        [0,1,1,-1,-1],
        [1,0,-1,1,-1],
        [1,-1,0,-1,1],
        [-1,1,-1,0,-1],
        [1,-1,1,-1,0],
    ]
    res = []
    #已经遍历过的点
    book_list = []
    #深度优先搜索
    def dfs(x):
        if x not in book_list:
            book_list.append(x)
        for i in range(5):
            if map_list[i][x] == 1 and i not in book_list:
                dfs(i)
    dfs(0)
    print(book_list)

    ?

    cs