Facebook
From Ionita, 1 Month ago, written in Python.
Embed
Download Paste or View Raw
Hits: 113
  1. import random
  2. ArrayNodes = [[-1,-1,-1] for i in range(20)]
  3.  
  4. for i in range(19):
  5.     ArrayNodes[i][0]=i+1
  6.  
  7. print(ArrayNodes)
  8. #you should link all the nodes that are in the free list
  9. RootPointer = -1
  10. FreeNode = 0
  11. #you should use the global variables rootpointer and freeNode, along with arrayNodes
  12. #usualy, when making an AddNode function, the parameter should be the element that you want to add.
  13. def AddNode(NodeData):
  14.     global RootPointer, FreeNode,ArrayNodes
  15.     if FreeNode <= 19:
  16.         ArrayNodes[FreeNode][0] = -1
  17.         ArrayNodes[FreeNode][1] = NodeData
  18.         ArrayNodes[FreeNode][2] = -1
  19.         if RootPointer == -1:
  20.             RootPointer = 0
  21.             FreeNode = 1
  22.             print(ArrayNodes, flush=True)
  23.         else:
  24.             Placed = False
  25.             CurrentNode = RootPointer
  26.             print(CurrentNode,flush=True)      
  27.             while Placed == False:
  28.                 if NodeData < ArrayNodes[CurrentNode][1]:
  29.                     if ArrayNodes[CurrentNode][0] == -1:
  30.                         ArrayNodes[CurrentNode][0] = FreeNode
  31.                         Placed = True
  32.                     else:
  33.                         CurrentNode = ArrayNodes[CurrentNode][0]
  34.                 elif ArrayNodes[CurrentNode][2] == -1:
  35.                     ArrayNodes[CurrentNode][2] = FreeNode
  36.                     Placed = True
  37.                 else:
  38.                     CurrentNode = ArrayNodes[CurrentNode][2]
  39.  
  40.             FreeNode = FreeNode + 1
  41.     else:
  42.         print("Tree is full")
  43.  
  44. def PrintAll(ArrayNodes):
  45.     for i in range(5):
  46.         print(ArrayNodes[i][0], ArrayNodes[i][1], ArrayNodes[i][2])
  47.  
  48. AddNode(90)
  49. AddNode(80)
  50. AddNode(172)
  51. AddNode(34)
  52. AddNode(10)
  53. print(RootPointer)
  54. PrintAll(ArrayNodes)