This README provides an overview of the projects completed in The Odin Project's Computer Science section. These projects cover key computer science concepts and data structures.
- Implemented a
fibsfunction using iteration to generate a Fibonacci sequence. - Developed a recursive solution with the
fibsRecfunction for the same problem. - Gained a solid understanding of recursion and its applications.
- Created a
mergeSortfunction that sorts an array using the merge sort algorithm. - Explored the divide-and-conquer strategy used in sorting algorithms.
- Designed a
LinkedListclass and aNodeclass to build a functional linked list. - Implemented methods like
append,prepend,pop, and size-related functions. - Practiced manipulation of linked lists.
- Built a balanced binary search tree (BST) using the
NodeandTreeclasses. - Utilized the
buildTreefunction to create a BST from an array. - Visualized tree structures with the
prettyPrintfunction.
- Implemented key BST operations:
insert,delete, andfind. - Traversed the tree in different orders (inOrder, preOrder, postOrder).
- Calculated node height and depth.
- Checked tree balance using the
isBalancedfunction. - Rebalanced unbalanced trees with the
reBalancefunction.
- Developed a
knightMovesfunction to find the shortest path for a knight on a chessboard. - Represented possible moves as a tree and applied a search algorithm.
- Outputted the path and the number of moves required.
- Introduced me to graph theory.
These projects provided a good practical opportunity to better understand and apply many computer science concepts, including recursion, sorting algorithms, data structures (linked lists and BSTs), and graph traversal.