[9] adding bst_insert()
This commit is contained in:
parent
6cbe3dc439
commit
6849fc4802
|
|
@ -190,10 +190,59 @@ def HashTable(buckest):
|
||||||
print("========= END TESTING ==============\n\n")
|
print("========= END TESTING ==============\n\n")
|
||||||
|
|
||||||
#################################################################################################
|
#################################################################################################
|
||||||
|
|
||||||
|
def bst_insert(root, name, phone):
|
||||||
|
|
||||||
|
running = root
|
||||||
|
|
||||||
|
if running is None:
|
||||||
|
root = {'name': name, 'phone': phone, 'left': None, 'right': None}
|
||||||
|
return root
|
||||||
|
while True:
|
||||||
|
node = sum(ord(ch) for ch in running['name'])
|
||||||
|
sheet = sum(ord(ch) for ch in name)
|
||||||
|
if node < sheet:
|
||||||
|
if running['right'] is None:
|
||||||
|
running['right'] = {'name': name, 'phone': phone, 'left': None, 'right': None}
|
||||||
|
return root
|
||||||
|
running = running['right']
|
||||||
|
elif node > sheet:
|
||||||
|
if running['left'] is None:
|
||||||
|
running['left'] = {'name': name, 'phone': phone, 'left': None, 'right': None}
|
||||||
|
return root
|
||||||
|
running = running['left']
|
||||||
|
else:
|
||||||
|
running['phone'] = phone
|
||||||
|
return root
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#################################################################################################
|
||||||
|
|
||||||
|
def BinarySearchTree(root):
|
||||||
|
|
||||||
|
print('=========== TESTING BST_INSERT =============')
|
||||||
|
Name = ['Dima', 'Alex', 'Ivan', 'Maxim', 'Olga', 'Lena']
|
||||||
|
|
||||||
|
for _ in range(10):
|
||||||
|
name = Name[rnd.randint(0, len(Name) - 1)]
|
||||||
|
phone = str(rnd.randint(0,9)) + str(rnd.randint(0,9)) + str(rnd.randint(0,9)) + '-' + \
|
||||||
|
str(rnd.randint(0,9)) + str(rnd.randint(0,9)) + str(rnd.randint(0,9))
|
||||||
|
|
||||||
|
print(name, phone)
|
||||||
|
root = bst_insert(root, name, phone)
|
||||||
|
print(root)
|
||||||
|
print('-----------------------------------------------------\n')
|
||||||
|
|
||||||
|
print('============= END TESTING =====================\n\n')
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################################
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
LinkedList(None)
|
LinkedList(None)
|
||||||
HashTable([[] for _ in range(10)])
|
HashTable([[] for _ in range(10)])
|
||||||
|
BinarySearchTree(None)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user