Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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;
                }
            }
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
        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));
        }