public static NawDoublyLinkedList FromArray(NAW[] array)
        {
            var result = new NawDoublyLinkedList();

            foreach (var item in array)
            {
                var link = new DoubleLink
                {
                    Naw      = item,
                    Previous = result.Last,
                    Next     = null
                };

                if (result.First == null)
                {
                    result.First = result.Last = link;
                }
                else
                {
                    result.Last.Next = link;
                    result.Last      = link;
                }
            }
            return(result);
        }
        public static NawDoublyLinkedList Random(int min, int max, out int count)
        {
            var result = new NawDoublyLinkedList();
            var r      = new Random();

            count = r.Next(min, max);
            DoubleLink prev = null;

            for (var i = 0; i < count; ++i)
            {
                var newLink = new DoubleLink
                {
                    Naw = RandomNawGenerator.New(10)
                };
                if (prev == null)
                {
                    result.First = newLink;
                }
                else
                {
                    prev.Next = newLink;
                }
                newLink.Previous = prev;
                prev             = newLink;
                result.Last      = prev;
            }
            return(result);
        }
Example #3
0
 public void NawDoublyDoublyLinkedList_Initialize()
 {
     lijst = new NawDoublyLinkedList();
     lijst.InsertHead(naw2);
     lijst.InsertHead(naw1);
     lijst.InsertHead(naw0);
 }
        public void DoublyLinkedList_SwapLinkWithNext_ItemsSwapped()
        {
            var count = 0;

            lijst = DoublyLinkedListGenerator.Random(4, 10, out count);
            // Arrange
            // lijst.First = new DoubleLink() { Naw = new NAW() { Naam = "naam", Adres = "adres", Woonplaats = "woonplaats" }, Next = lijst.First };
            // lijst.First.Next.Previous = lijst.First;

            DoubleLink first  = lijst.First;
            DoubleLink second = first.Next;
            DoubleLink third  = second.Next;
            DoubleLink fourth = third.Next;

            // Act
            ExeTimed(() => lijst.SwapLinkWithNext(second));

            Assert.AreEqual(first, lijst.First, "De eerste is gewijzigd. Dit was niet de bedoeling.");
            Assert.AreEqual(fourth, lijst.First.Next.Next.Next, "De laatste is gewijzigd. Dit was niet de bedoeling.");

            Assert.AreEqual(third, lijst.First.Next, "De eerste zou nu naar de derde moeten wijzen, dit doet hij niet.");
            Assert.AreEqual(lijst.First, third.Previous, "De derde zou nu naar de eerste terug moeten wijzen, dit doet hij niet.");

            Assert.AreEqual(second, third.Next, "De derde zou nu naar de tweede moeten wijzen, dit doet hij niet.");
            Assert.AreEqual(third, second.Previous, "De tweede zou nu naar de derde terug moeten wijzen, dit doet hij niet.");

            Assert.AreEqual(second, fourth.Previous, "De tweede zou nu naar de vierde moeten wijzen, dit doet hij niet.");
            Assert.AreEqual(fourth, second.Next, "De vierde zou nu naar de tweede terug moeten wijzen, dit doet hij niet.");
        }
Example #5
0
        public void DoublyLinkedList_InsertInBeginning_EmptyList_ChangesList()
        {
            NawDoublyLinkedList lijst = new NawDoublyLinkedList();

            lijst.InsertHead(new_naw);

            Assert.AreEqual(new_naw, lijst.First.Naw, "Het nieuwe element is nu niet het eerste element geworden.");
            Assert.AreEqual(new_naw, lijst.Last.Naw, "Het nieuwe element is ingevoegd in een lege lijst maar niet het laatste element geworden.");
            Assert.AreEqual(lijst.First.Previous, null, "De previous van de nieuwe Link wijst niet naar null wanneer een eerste link aan een lege lijst wordt toegevoegd.");
            Assert.AreEqual(lijst.First.Next, null, "De next van de nieuwe link wijst niet naar null wanneer een eerste link aan een lege lijst wordt toegevoegd.");
        }
Example #6
0
        public void NawDoublyDoublyLinkedList_Initialize()
        {
            lijst       = new NawDoublyLinkedList();
            lijst.First = new DoubleLink()
            {
                Naw = naw0
            };
            lijst.First.Next = new DoubleLink()
            {
                Naw = naw1
            };
            lijst.First.Next.Previous = lijst.First;

            lijst.First.Next.Next = lijst.Last = new DoubleLink()
            {
                Naw = naw2
            };
            lijst.First.Next.Next.Previous = lijst.First.Next;
        }
Example #7
0
        static void Main(string[] args)
        {
            NawDoublyLinkedList nawDoublyLinkedList = new NawDoublyLinkedList();

            NAW naw1 = new NAW("ABC", "straat", "schijndel");
            NAW naw2 = new NAW("YIJD", "dropstraat", "den bosch");
            NAW naw3 = new NAW("DEF", "kerkstraat", "amsterdam");
            NAW naw4 = new NAW("DEF", "dorpstraat", "amsterdam");
            NAW naw5 = new NAW("ABC", "kerkstraat", "amsterdam");

            nawDoublyLinkedList.InsertHead(naw1);
            nawDoublyLinkedList.InsertHead(naw2);
            nawDoublyLinkedList.InsertHead(naw3);
            nawDoublyLinkedList.InsertHead(naw4);
            nawDoublyLinkedList.InsertHead(naw5);

            nawDoublyLinkedList.BubbleSort();

            for (int i = 0; i < nawDoublyLinkedList._length; i++)
            {
                Console.WriteLine(nawDoublyLinkedList.GetNawAt(i));
            }
            System.Console.ReadKey();
        }