CS263-TermProject Contact List & Splitwiser Terminal Application Doubly Linked List Data Structure ``` This data structure consist of Contact data, previous pointer and next pointer. ``` Insertion Algorithm ``` DLL Node Insertion ``` Deletion Algorithm ``` DLL Node Deletion ``` Search Algorithm ``` Binary Search Technique to search a contact based on the initials entered by user. ``` Updation Algorithm ``` Search for the Name and replace Name, WorkContact and MobileNumber with the new data. ``` Find Duplicate Contacts ``` Use Hashset to check for duplicates ``` Sorting ``` Merge Sort - If auxilary memory is available Randomised Quicksort - Fastest execution on machine Heapsort - If there are memory constraints ``` LRU Cache Algorithm ``` Create a Deque and a HashSet. Set some capacity of the Cache Memory. Check in hashset for node. Then push into the list and hashset. ``` Minimum Cash Flow Algorithm ``` For bill splitting. To minimize the cost required to deliver maximum amount of flow possible in the network ```