This repository contains the various implementations of algorithms and data structures made as a part of NTNU's "Algorithms and Data Structures" course, fall 2021.
The project is a mix of optional exercises and recommended tasks, it is not mandatory, and it does not count towards the final grade in the subject.
There are a variety of different algorithms in this repository, to make navigation easier, they are listed here in the following tree:
Project root
│ .gitignore
│ pom.xml
│ README.md
│
└───src
└───main
└───java
├───dataStructures
│ ├───binaryHeap
│ │ MinimumBinaryHeap.java
│ │
│ ├───cacheSystem
│ │ Cache.java
│ │ UserProfile.java
│ │ UserService.java
│ │
│ ├───priorityQueue
│ │ Entry.java
│ │ PriorityQueue.java
│ │
│ ├───singlyLinkedList
│ │ Node.java
│ │ SinglyLinkedList.java
│ │
│ └───tree
│ ├───binaryTree
│ │ BinaryTree.java
│ │ NoSuchValueException.java
│ │ SuccessorNotFoundException.java
│ │
│ └───tree
│ Tree.java
│
├───other
│ ├───caesarCipher
│ │ CaesarCipher.java
│ │
│ ├───coinChangeProblem
│ │ CoinChangeProblem.java
│ │ Solution.java
│ │
│ ├───digitsInInteger
│ │ DigitsInInteger.java
│ │
│ ├───fileSystemTree
│ │ FileSystem.java
│ │ FileSystemTree.java
│ │
│ ├───josephusProblem
│ │ JosephusProblem.java
│ │
│ ├───miniMaxSum
│ │ MiniMaxSum.java
│ │
│ ├───multiplicationTable
│ │ MultiplicationTable.java
│ │
│ ├───palindrome
│ │ Palindrome.java
│ │
│ ├───parenthesesCheck
│ │ ParenthesesCheck.java
│ │
│ ├───patternMatching
│ │ PatternMatching.java
│ │
│ ├───recursions
│ │ Recursions.java
│ │
│ ├───textInFrame
│ │ TextInFrame.java
│ │
│ └───twoSumProblem
│ TwoSumProblem.java
│
├───searching
│ │ BinarySearch.java
│ │
│ └───binarySearchTree
│ BinarySearchTree.java
│ Node.java
│
└───sorting
BubbleSort.java
InsertionSort.java
QuickSort.java
SelectionSort.java
Utilities.java