forked from UNN/2026-rff_mp
[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")
|
||||
|
||||
#################################################################################################
|
||||
|
||||
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():
|
||||
|
||||
LinkedList(None)
|
||||
HashTable([[] for _ in range(10)])
|
||||
BinarySearchTree(None)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user