示例#1
0
        public void Should_Clear()
        {
            //arrange
            var node1 = new MyDoublyLinkedListNode <int>(2);
            var node2 = new MyDoublyLinkedListNode <int>(4);
            var node3 = new MyDoublyLinkedListNode <int>(3);
            var node4 = new MyDoublyLinkedListNode <int>(5);

            node1.Next = node2;
            node2.Next = node3;
            node3.Next = node4;

            node2.Prev = node1;
            node3.Prev = node2;
            node4.Prev = node3;

            var list = new MyDoublyLinkedList <int>(node1);

            //act
            list.Clear();

            //assert
            list.Count.ShouldBeEquivalentTo(0);
            list.Head.ShouldBeEquivalentTo(list.Tail);
            list.Head.Should().BeNull();
        }
示例#2
0
        public static void Main(string[] args)
        {
            MyDoublyLinkedList list = new MyDoublyLinkedList();

            list.AddFirst("Hello");

            list.AddLast("world");

            list.AddLast("!");
            list.AddLast("!");
            list.AddLast("!");
            list.AddLast("!");

            list.RemoveByIndex(0);

            list.AddFirst("Hi");

            // check = true
            var check = list.RemoveEveryEqual("!");

            var array = list.ToArray();

            // Hi
            // world
            foreach (var @object in array)
            {
                Console.WriteLine(@object);
            }

            list.AddFirst("Bob");
            list.AddFirst("Eugene");
            list[0] = "Zero";

            list.RemoveByIndex(1);
            list.RemoveFirst();

            array = list.ToArray();

            // Bob
            // Hi
            // world
            foreach (var @object in array)
            {
                Console.WriteLine(@object);
            }

            list.Clear();
        }
示例#3
0
        private void ArrangeAndActUponLinkedLists(LinkedList <int> originalLinkedList, MyDoublyLinkedList <int> myLinkedList)
        {
            LinkedListNode <int> fiveHundredListNode = new LinkedListNode <int>(500);
            LinkedListNode <int> tenListNode         = new LinkedListNode <int>(10);
            LinkedListNode <int> last = new LinkedListNode <int>(666);

            MyLinkedListNode <int> myFiveHundredListNode = new MyLinkedListNode <int>(500);
            MyLinkedListNode <int> myTenListNode         = new MyLinkedListNode <int>(10);
            MyLinkedListNode <int> myLast = new MyLinkedListNode <int>(666);

            originalLinkedList.AddFirst(tenListNode);
            originalLinkedList.AddBefore(tenListNode, 9);
            originalLinkedList.AddAfter(tenListNode, fiveHundredListNode);
            originalLinkedList.AddLast(last);
            originalLinkedList.Remove(10);
            originalLinkedList.AddAfter(last, 777);
            originalLinkedList.Remove(fiveHundredListNode);
            originalLinkedList.RemoveFirst();
            originalLinkedList.RemoveLast();
            originalLinkedList.Clear();
            originalLinkedList.AddLast(5);
            originalLinkedList.RemoveFirst();

            myLinkedList.AddFirst(myTenListNode);
            myLinkedList.AddBefore(myTenListNode, 9);
            myLinkedList.AddAfter(myTenListNode, myFiveHundredListNode);
            myLinkedList.AddLast(myLast);
            myLinkedList.Remove(10);
            myLinkedList.AddAfter(myLast, 777);
            myLinkedList.Remove(myFiveHundredListNode);
            myLinkedList.RemoveFirst();
            myLinkedList.RemoveLast();
            myLinkedList.Clear();
            myLinkedList.AddLast(5);
            myLinkedList.RemoveFirst();
        }