diff --git a/pomelovsd/DataStruct/BinaryTree.py b/pomelovsd/DataStruct/BinaryTree.py new file mode 100644 index 0000000..77342c8 --- /dev/null +++ b/pomelovsd/DataStruct/BinaryTree.py @@ -0,0 +1,3 @@ +def create_node(name,phone): + return {"name": name, "phone": phone, "left": None, "right": None} + diff --git a/pomelovsd/DataStruct/HashTable.py b/pomelovsd/DataStruct/HashTable.py new file mode 100644 index 0000000..e781068 --- /dev/null +++ b/pomelovsd/DataStruct/HashTable.py @@ -0,0 +1,30 @@ +from LinkedList import ll_insert, ll_find, ll_delete, ll_list_all + +def ht_create(size = 1000): + return[None] * size + +def hash_function(name, size = 1000): + value = 0 + for char in name: + value = (value * 31 + ord(char)) % size + return value + +def ht_insert(buckets, name, phone): + index = hash_function(name, len(buckets)) + buckets[index] = ll_insert(buckets[index], name, phone) + return buckets + +def ht_delete(buckets, name): + index = hash_function(name, len(buckets)) + buckets[index] = ll_delete(buckets[index], name) + return buckets + +def ht_find(buckets, name): + index = hash_function(name, len(buckets)) + return ll_find(buckets[index], name) + +def ht_list_all(buckets): + records = [] + for bucket in buckets: + if buckets is not None: + records.extend(ll_list_all(buckets)) \ No newline at end of file diff --git a/pomelovsd/LinkedList.py b/pomelovsd/DataStruct/LinkedList.py similarity index 100% rename from pomelovsd/LinkedList.py rename to pomelovsd/DataStruct/LinkedList.py diff --git a/pomelovsd/data_structures.ipynb b/pomelovsd/DataStruct/data_structures.ipynb similarity index 96% rename from pomelovsd/data_structures.ipynb rename to pomelovsd/DataStruct/data_structures.ipynb index ca9bb95..ea7e458 100644 --- a/pomelovsd/data_structures.ipynb +++ b/pomelovsd/DataStruct/data_structures.ipynb @@ -15,7 +15,7 @@ } ], "source": [ - "import LinkedLists\n", + "import LinkedList\n", "import HashTable\n" ] } diff --git a/pomelovsd/HashTable.py b/pomelovsd/HashTable.py deleted file mode 100644 index a722151..0000000 --- a/pomelovsd/HashTable.py +++ /dev/null @@ -1,3 +0,0 @@ -def - -def ht_insert(buckets, name, phone):