m = 999999
a = [[0, 1, 1, m, 1],
[1, 0, m, 1, m],
[1, m, 0, m, 1],
[m, 1, m, 0, m],
[1, m, 1, m, 0]]
n = 5
sm = 0
book = [0] * n
def dfs(cur):
"""
:param cur: 当前访问点
:return:
"""
global sm
print('%d' % cur, end=' ')
sm = sm + 1
if sm == n:
return
for i in range(0, n):
if a[cur][i] == 1 and book[i] == 0:
book[i] = 1
dfs(i)
def dfs_non_recursion(cur):
"""
:param cur: 当前访问点
:return:
"""
s = []
s.append(cur)
book[cur] = 1
while len(s) != 0:
cur = s.pop()
print('%d' % cur, end=' ')
for i in range(n-1, -1, -1):
if a[cur][i] == 1 and book[i] == 0:
book[i] = 1
s.append(i)
def bfs(cur):
"""
:param cur: 当前访问点
:return:
"""
q = []
q.append(cur)
while len(q) != 0:
cur = q.pop(0)
print('%d' % cur, end=' ')
for i in range(0, n):
if a[cur][i] == 1 and book[i] == 0:
book[i] = 1
q.append(i)
if __name__ == "__main__":
book[0] = 1
dfs(0)
for i in range(n):
book[i] = 0
print()
dfs_non_recursion(0)
for i in range(n):
book[i] = 0
print()
book[0] = 1
bfs(0)