Skip to content

Commit 86920da

Browse files
committed
docs(readme): update root README to include HashMap project details
1 parent 0cea3d9 commit 86920da

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

README.md

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,29 @@
1-
# 🧠 Algorithm Practice: Merge Sort, Fibonacci & Linked List
1+
# 🧠 Algorithm Practice: Recursion, Sorting, Linked List & HashMap
22

3-
This project contains simple yet fundamental algorithm implementations done as part of [The Odin Project](https://www.theodinproject.com/) curriculum. The focus is on recursive thinking and solving problems like the Fibonacci sequence, Merge Sort and Linked Lists from scratch using JavaScript.
3+
This project contains fundamental algorithm and data structure implementations, done as part of [The Odin Project](https://www.theodinproject.com/) curriculum.
4+
5+
It focuses on **recursive thinking**, **sorting**, **linked lists**, and now also includes a complete custom-built **hash map** with resizing and collision handling.
46

57
---
68

79
## 📂 Files
810
```
9-
algo-practice
10-
├── recursion/
11-
│ ├── iterative.js
12-
│ └── recursive.js
13-
├── merge-sort/
14-
│ └── mergeSort.js
15-
├── linked-list/
16-
│ ├── Node.js
17-
│ ├── LinkedList.js
18-
│ ├── test.js
19-
│ └── README.md
20-
└── README.md
11+
algo-practice/
12+
├── recursion/
13+
│ ├── iterative.js
14+
│ └── recursive.js
15+
├── merge-sort/
16+
│ └── mergeSort.js
17+
├── linked-list/
18+
│ ├── Node.js
19+
│ ├── LinkedList.js
20+
│ ├── test.js
21+
│ └── README.md
22+
├── hashmap/
23+
│ ├── hashMap.js
24+
│ ├── test.js
25+
│ └── README.md
26+
└── README.md
2127
2228
```
2329

@@ -34,6 +40,14 @@ algo-practice
3440
- LinkedList.js → Contains core linked list methods like:
3541
- `append()`, `prepend()`, `size()`, `at()`, `pop()`, `find()`, `contains()`, `toString()`
3642
- test.js → Sample test cases to validate the implementation
43+
44+
### 🔐 `hashmap/`
45+
- Custom `HashMap` class with:
46+
- Chained collision handling
47+
- Resizing logic when load factor exceeds 0.75
48+
- Methods like `set`, `get`, `has`, `remove`, `clear`, `keys`, `values`, `entries`
49+
- Notes + test cases included
50+
➡️ [View detailed HashMap README →](./hashmap/README.md)
3751
---
3852

3953
## 🚀 Sample Inputs & Outputs
@@ -59,14 +73,12 @@ mergeSort([105, 79, 100, 110]);
5973
---
6074

6175
## 🧩 What I Learned
62-
- The difference between iterative and recursive thinking.
63-
- How to break problems down using base cases and divide & conquer logic.
64-
- The concept of mergeSort and how beautifully are these algorithms are directly associated with our real lives.
65-
- How recursion builds up the solution from the ground.
66-
- The importance of clean code, small reusable functions, and test-driven thinking.
67-
- The fundamentals of linked lists — how they work under the hood and how to implement one from scratch without built-in data structures.
68-
6976

77+
- The difference between iterative vs recursive solutions.
78+
- How to build data structures from scratch — LinkedList and HashMap.
79+
- Handling collisions and resizing logic in hash-based storage.
80+
- The importance of clear, testable, modular code.
81+
- How lower-level data structures power high-level abstractions.
7082

7183
---
7284

0 commit comments

Comments
 (0)