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); }
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."); }
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."); }
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; }
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(); }