Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from random import randrange as rnd
- win = Tk()
- win.geometry('800x800')
- canv = Canvas(bg='white')
- canv.pack(fill=BOTH,expand=1)
- m = 30
- x0 = 400
- y0 = 50
- class Node():
- def __init__(self,value):
- self.value = value
- self.left = None
- self.right = None
- def __str__(self):
- return str(self.value)
- def add_node(node,value):
- if value > node.value:
- if node.right:
- add_node(node.right,value)
- else:
- node.right = Node(value)
- else:
- if node.left:
- add_node(node.left,value)
- else:
- node.left = Node(value)
- def paint_node(node,x,y,w):
- r = m/2
- canv.create_oval(x-r,y-r,x+r,y+r)
- if node.value:
- canv.create_text(x,y,text = node.value, font = 'Tahoma 14')
- if node.left:
- canv.create_line(x,y,x-w/2,y+m)
- paint_node(node.left,x-w/2,y+m,w/2)
- if node.right:
- canv.create_line(x,y,x+w/2,y+m)
- paint_node(node.right,x+w/2,y+m,w/2)
- root = Node(10)
- values = [x for x in range(100)]
- for i in range(10):
- i = rnd(len(values))
- add_node(root,values.pop(i))
- paint_node(root,x0,y0,600)
- mainloop()
Advertisement
Add Comment
Please, Sign In to add comment