当前位置 博文首页 > wang785994599的博客:树的遍历
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