Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. MyList = []
  2.  
  3. def addToList(string):
  4. words = []
  5. vertex = [int(string[0]), int(string[1])]
  6. for i in range(2, len(string)): words.append(string[i])
  7. vertex.append(' '.join(words))
  8. MyList.append(vertex)
  9.  
  10. while (True):
  11. try:
  12. string = input()
  13. addToList(list(string.split()))
  14. except EOFError:
  15. break
  16.  
  17. ChildList = [[] for _ in range(len(MyList) + 1)]
  18. for vertex in MyList:
  19. ChildList[vertex[1]].append(vertex)
  20.  
  21. def printSymbCode(symbCode):
  22. if len(symbCode) < 2:
  23. return
  24.  
  25. i = 1
  26. while (i < len(symbCode) and symbCode[i] == 1):
  27. print(" ", end='')
  28. i += 1
  29.  
  30. while (i < len(symbCode)):
  31. print("┃ ", end='')
  32. i += 1
  33.  
  34.  
  35. def wierdDfs(MyList, ChildList, n, deep, symbCode):
  36. #n - текущий номер вершины
  37. #d - уровень в дереве
  38. lastSymb = ""
  39. if symbCode:
  40. if (symbCode[-1] == 1):
  41. lastSymb = "┗╸"
  42. elif (symbCode[-1] == 0):
  43. lastSymb = "┣╸"
  44.  
  45. printSymbCode(symbCode)
  46. print(str(lastSymb), end="")
  47. print(MyList[n][2])
  48.  
  49. if not ChildList[n]:
  50. return
  51.  
  52. newSymbCode = symbCode.copy()
  53. for i in range(len(ChildList[n])):
  54. if (i == len(ChildList[n]) - 1):
  55. newSymbCode.append(1)
  56. else:
  57. newSymbCode.append(0)
  58.  
  59. wierdDfs(MyList, ChildList, ChildList[n][i][0], deep+1, newSymbCode)
  60.  
  61. wierdDfs(MyList, ChildList, 0, 0, [])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement