{"id":19788071,"url":"https://github.com/fuston05/cs-module-project-hash-tables_2","last_synced_at":"2026-05-31T23:31:37.113Z","repository":{"id":102051052,"uuid":"283194878","full_name":"fuston05/cs-module-project-hash-tables_2","owner":"fuston05","description":"copy of lambda school repo for extra practice: python hash tables","archived":false,"fork":false,"pushed_at":"2020-07-29T18:55:35.000Z","size":36,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T14:12:25.883Z","etag":null,"topics":["data-structures","hashtable","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fuston05.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-28T11:40:24.000Z","updated_at":"2021-06-19T12:48:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"8f5491d0-914a-4fbc-bb03-dd7e97f3c424","html_url":"https://github.com/fuston05/cs-module-project-hash-tables_2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fuston05/cs-module-project-hash-tables_2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuston05%2Fcs-module-project-hash-tables_2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuston05%2Fcs-module-project-hash-tables_2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuston05%2Fcs-module-project-hash-tables_2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuston05%2Fcs-module-project-hash-tables_2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuston05","download_url":"https://codeload.github.com/fuston05/cs-module-project-hash-tables_2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuston05%2Fcs-module-project-hash-tables_2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33753923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-structures","hashtable","python3"],"created_at":"2024-11-12T06:26:02.459Z","updated_at":"2026-05-31T23:31:37.096Z","avatar_url":"https://github.com/fuston05.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hash Tables\n\n## Day 1\n\nTask: Implement a basic hash table without collision resolution.\n\n1. Implement a `HashTable` class and `HashTableEntry` class.\n\n2. Implement a good hashing function.\n\n   Recommend either of:\n\n   * DJB2\n   * FNV-1 (64-bit)\n\n   You are allowed to Google for these hashing functions and implement\n   from psuedocode.\n\n3. Implement the `hash_index()` that returns an index value for a key.\n\n4. Implement the `put()`, `get()`, and `delete()` methods.\n\nYou can test this with:\n\n```\npython test_hashtable_no_collisions.py\n```\n\nThe above test program is _unlikely_ to have collisions, but it's\ncertainly possible for various hashing functions. With DJB2 (32 bit) and\nFNV-1 (64 bit) hashing functions, there are no collisions.\n\n## Day 2\n\nTask: Implement linked-list chaining for collision resolution.\n\n1. Modify `put()`, `get()`, and `delete()` methods to handle collisions.\n\n2. There is no step 2.\n\nYou can test this with:\n\n```\npython test_hashtable.py\n```\n\nTask: Implement load factor measurements and automatic hashtable size\ndoubling.\n\n1. Compute and maintain load factor.\n\n2. When load factor increases above `0.7`, automatically rehash the\n   table to double its previous size.\n\n   Add the `resize()` method.\n\nYou can test this with both of:\n\n```\npython test_hashtable.py\npython test_hashtable_resize.py\n```\n\nStretch: When load factor decreases below `0.2`, automatically rehash\nthe table to half its previous size, down to a minimum of 8 slots.\n\n## Day 3 and Day 4\n\nWork on the hashtable applications directory (in any order you\nwish--generally arranged from easier to harder, below).\n\nFor these, you can use either the built-in `dict` type, or the hashtable\nyou built. (Some of these are easier with `dict` since it's more\nfull-featured.)\n\n* [Lookup Table](applications/lookup_table/)\n* [Expensive Sequence](applications/expensive_seq/)\n* [Word Count](applications/word_count/)\n* [No Duplicates](applications/no_dups/)\n* [Markov Chains](applications/markov/)\n* [Histogram](applications/histo/)\n* [Cracking Caesar Ciphers](applications/crack_caesar/)\n* [Sum and Difference](applications/sumdiff/)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuston05%2Fcs-module-project-hash-tables_2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuston05%2Fcs-module-project-hash-tables_2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuston05%2Fcs-module-project-hash-tables_2/lists"}