public void GivenValue_WhenSearchLinkedList_ShouldReturnTheListWithValueInsertedNextToTheSearchPosition() { LinkedListOperations list1 = new LinkedListOperations(); int list1Count = 0, list2Count = 0; list1.AddAtHead(56); list1.AddAtHead(30); list1.AddAtHead(40); list1.AddAtHead(70); LinkedListOperations list2 = new LinkedListOperations(); list2.AddAtHead(56); list2.AddAtHead(30); list2.AddAtHead(70); int searchOutput = list2.Search(30); list2.InsertAtParticularPosition(searchOutput + 1, 40); Node temp1 = list1.head; Node temp2 = list2.head; while (temp1 != null) { temp1 = temp1.next; list1Count++; } while (temp2 != null) { temp2 = temp2.next; list2Count++; } Assert.AreEqual(list1Count, list2Count); }
public void Equal_length_list() { var node1 = new ListNode(1); var node2 = new ListNode(2); var node3 = new ListNode(3); var node4 = new ListNode(4); var node5 = new ListNode(5); var node6 = new ListNode(6); var list1 = new LinkedList(); list1.Add(node1); list1.Add(node2); list1.Add(node3); var list2 = new LinkedList(); list2.Add(node4); list2.Add(node5); list2.Add(node6); var addListNode = LinkedListOperations.AddTwoNumbers(list1.First, list2.First); Assert.Equal(new[] { 5, 7, 9 }, LinkedList.GetNodeValues(addListNode)); }
public void GivenLinkedList_WhenSearchParticularValueOfLinkedList_ShouldReturnPosition() { LinkedListOperations linkedListOperations = new LinkedListOperations(); linkedListOperations.AddAtHead(56); linkedListOperations.AddAtHead(30); linkedListOperations.AddAtHead(70); int searchOutput = linkedListOperations.Search(30); Assert.AreEqual(1, searchOutput); }
public void GivenParticularValue_WhenDeleteFromLinkedList_ShouldReturnTheListSize() { LinkedListOperations list = new LinkedListOperations(); list.AddAtLast(56); list.AddAtLast(30); list.AddAtLast(40); list.AddAtLast(70); int searchedValue = list.Search(40); list.DeleteNodeByValue(40, searchedValue); int expected = 3; Assert.AreEqual(expected, list.Size()); }
private static void Main(string[] args) { Console.WriteLine("================================================================================================="); Console.WriteLine(" WELCOME"); Console.WriteLine("================================================================================================="); Console.WriteLine(); bool running = true; while (running) { Console.WriteLine(" ENTER 1 : TO INITIALIZE A QUEUE"); Console.WriteLine(" ENTER 2 : TO INITIALIZE A STACK"); Console.WriteLine(" ENTER 3 : TO INITIALIZE A LINKED-LIST"); Console.WriteLine(" ENTER 4 : TO EXIT"); Console.WriteLine(); string input = Console.ReadLine(); switch (input) { case "1": QueueOperations.Start(); break; case "2": StackOperations.Start(); break; case "3": LinkedListOperations.Start(); break; case "4": Console.WriteLine("Good bye!"); running = false; break; } } }
private IOperate GetLinkedListOperationsHandler(IDataStructure <TDataType> dataStructureInstance, LinkedListOperations operation) { switch (operation) { case LinkedListOperations.Create: return(new LinkedListCreateOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.Traversal: return(new LinkedListTraversalOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.Find: return(new LinkedListFindOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.InsertAtFront: return(new LinkedListInsertAtFrontOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.InsertAtLast: return(new LinkedListInsertAtLastOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.InsertAfter: return(new LinkedListInsertAfterOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.InsertBefore: return(new LinkedListInsertBeforeOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.DeleteFirst: return(new LinkedListDeleteFirstOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.DeleteLast: return(new LinkedListDeleteLastOperator <TDataType>(userInterface, dataStructureInstance)); case LinkedListOperations.DeleteSpecific: return(new LinkedListDeleteSpecificOperator <TDataType>(userInterface, dataStructureInstance)); default: throw new ArgumentOutOfRangeException(nameof(operation), operation, null); } }
public void Unequal_length_overflow() { var node1 = new ListNode(9); var node2 = new ListNode(9); var node3 = new ListNode(9); var node4 = new ListNode(9); var node5 = new ListNode(9); var list1 = new LinkedList(); list1.Add(node1); list1.Add(node2); list1.Add(node3); var list2 = new LinkedList(); list2.Add(node4); list2.Add(node5); var addListNode = LinkedListOperations.AddTwoNumbers(list1.First, list2.First); Assert.Equal(new[] { 1, 0, 9, 8 }, LinkedList.GetNodeValues(addListNode)); }