Advertisement
finySTAR

BinaryTree

Jan 19th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. class BinFa:
  2.     def __init__(self, ertek):
  3.         self.ertek = ertek
  4.         self.bal = None
  5.         self.jobb = None
  6.  
  7.     def __str__(self):
  8.         return "balreszfa:{} jobbreszfa:{}".format(self.bal, self.jobb)
  9.  
  10. import math
  11.  
  12. def beszur(gyoker, ertek):
  13.     if gyoker is None:
  14.         gyoker = BinFa(ertek)
  15.     elif ertek < gyoker.ertek:
  16.         gyoker.bal = beszur(gyoker.bal, ertek)
  17.     elif ertek > gyoker.ertek:
  18.         gyoker.jobb = beszur(gyoker.jobb, ertek)
  19.     else:
  20.         pass
  21.     return gyoker
  22.  
  23. def binfa_elemszam(gyoker):
  24.     if gyoker is None:
  25.         return 0
  26.    
  27.     return (binfa_elemszam(gyoker.bal)+ binfa_elemszam(gyoker.jobb)+ 1)
  28.  
  29. def binfa_osszeg(gyoker):
  30.     if gyoker is None:
  31.         return 0
  32.     x=binfa_osszeg(sum(gyoker.bal))+binfa_osszeg(sum(gyoker.jobb))
  33.     return x
  34. def inorder(gyoker):
  35.     if gyoker is None:
  36.         return
  37.  
  38.     inorder(gyoker.bal)
  39.     print(gyoker.ertek, end=" ")
  40.     inorder(gyoker.jobb)
  41.    
  42. def main():
  43.     tesztadat = [15, 96, 34, 12, 14, 56, 21, 11, 10, 9, 78, 43]
  44.     gyoker = None
  45.     for x in tesztadat:
  46.         gyoker = beszur(gyoker, x)
  47.            
  48.     inorder(gyoker)
  49.     print("Elemek száma:",binfa_elemszam(gyoker))
  50.     print(binfa_osszeg(gyoker))
  51. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement