In [ ]:
tree = [[1, 3], [4, 7], [5, 9], [3, 5], [7, 10], [1, 2], [4, 6], [5, 8], [1, 4]]
edges = [[] for i in range(11)]
for u, v in tree:
    edges[u].append(v)

for i in range(1, 11):
    print(f"point {i} :", end=" ")
    for j in edges[i]:
        print(j, end=" ")
    print()
point 1 : 3 2 4 
point 2 : 
point 3 : 5 
point 4 : 7 6 
point 5 : 9 8 
point 6 : 
point 7 : 10 
point 8 : 
point 9 : 
point 10 : 
In [ ]:
list = [1]

while len(list) > 0:
    front = list[0]
    list.pop(0)
    print(front, end=" ")
    for i in edges[front]:
        if i != 0:
            list.append(i)
1 3 2 4 5 7 6 9 8 10 
In [ ]:
list = [1]

while len(list) > 0:
    back = list[-1]
    list.pop()
    print(back, end=" ")
    for i in edges[back][::-1]:
        if i != 0:
            list.append(i)
1 3 5 9 8 2 4 7 10 6 
In [ ]:
def dfs(u):
    print(u, end=" ")
    for v in edges[u]:
        if v != 0:
            dfs(v)

dfs(1)
1 3 5 9 8 2 4 7 10 6