public void CanMergeLinkedListSecondListLonger() { Node LL1Node1 = new Node("LL1Node1"); Node LL1Node2 = new Node("LL1Node2"); Node LL1Node3 = new Node("LL1Node3"); Node LL1Node4 = new Node("LL1Node4"); Node LL1Node5 = new Node("LL1Node5"); Node LL2Node1 = new Node("LL2Node1"); Node LL2Node2 = new Node("LL2Node2"); Node LL2Node3 = new Node("LL2Node3"); Node LL2Node4 = new Node("LL2Node4"); Node LL2Node5 = new Node("LL2Node5"); Node LL2Node6 = new Node("LL2Node6"); LL LL1 = new LL(LL1Node1); LL LL2 = new LL(LL2Node1); LL1.Append(LL1Node2); LL1.Append(LL1Node3); LL1.Append(LL1Node4); LL1.Append(LL1Node5); LL2.Append(LL2Node2); LL2.Append(LL2Node3); LL2.Append(LL2Node4); LL2.Append(LL2Node5); LL2.Append(LL2Node6); LLMerge(LL1, LL2); Assert.NotEqual(LL1Node3, LL1Node2.Next); }
public void LLCanAddBefore(object value) { Node node1 = new Node(10); Node node2 = new Node(null); Node node3 = new Node("Dune"); Node node4 = new Node(value); LL LL = new LL(node1); LL.Append(node2); LL.Append(node3); LL.AddBefore(node4, node3); Assert.Equal(node3, node4.Next); }
public void LLCanFind(object value) { Node node1 = new Node(10); Node node2 = new Node(null); Node node3 = new Node("Dune"); Node node4 = new Node(value); LL LL = new LL(node1); LL.Append(node2); LL.Append(node3); LL.Append(node4); Assert.Equal(value, LL.Find(value).Value); }
public void LLCanAppend(object value) { Node node1 = new Node(10); Node node2 = new Node(null); Node node3 = new Node("Dune"); Node node4 = new Node(value); LL LL = new LL(node1); LL.Append(node2); LL.Append(node3); LL.Append(node4); Assert.Null(node4.Next); }
public void NotAPalindromeTest() { Node node1 = new Node("S"); Node node2 = new Node("H"); Node node3 = new Node("A"); Node node4 = new Node("I"); Node node5 = new Node("H"); Node node6 = new Node("U"); Node node7 = new Node("L"); Node node8 = new Node("U"); Node node9 = new Node("D"); LL LL1 = new LL(node1); LL1.Append(node2); LL1.Append(node3); LL1.Append(node4); LL1.Append(node5); LL1.Append(node6); LL1.Append(node7); LL1.Append(node8); LL1.Append(node9); Assert.False(PalindromeChecker(LL1)); }
public void CanReverseEvenLinkedList() { Node node1 = new Node("node1"); Node node2 = new Node("node2"); Node node3 = new Node("node3"); Node node4 = new Node("node4"); LL LL1 = new LL(node1); LL1.Append(node2); LL1.Append(node3); LL1.Append(node4); LL LL2 = ReverseLL(LL1); Assert.Equal(LL1.Head.Value, LL2.Head.Value); }
public void CanFindValueAtHead() { Node node1 = new Node("node1"); Node node2 = new Node("node2"); Node node3 = new Node("node3"); Node node4 = new Node("node4"); Node node5 = new Node("node5"); LL ll = new LL(node1); ll.Append(node2); ll.Append(node3); ll.Append(node4); ll.Append(node5); Assert.Equal("node1", NodeFinderAtK(5, ll)); }
public void CanThrowException() { Node node1 = new Node("node1"); Node node2 = new Node("node2"); Node node3 = new Node("node3"); Node node4 = new Node("node4"); Node node5 = new Node("node5"); LL ll = new LL(node1); ll.Append(node2); ll.Append(node3); ll.Append(node4); ll.Append(node5); Assert.Equal("Value is outside Linked List", NodeFinderAtK(10, ll)); }
public void EvenLetterPalindromeTest() { Node node1 = new Node("H"); Node node2 = new Node("A"); Node node3 = new Node("N"); Node node4 = new Node("N"); Node node5 = new Node("A"); Node node6 = new Node("H"); LL LL1 = new LL(node1); LL1.Append(node2); LL1.Append(node3); LL1.Append(node4); LL1.Append(node5); LL1.Append(node6); Assert.True(PalindromeChecker(LL1)); }
public static void Main(string[] args) { Node LL1Node1 = new Node("LL1Node1"); Node LL1Node2 = new Node("LL1Node2"); Node LL1Node3 = new Node("LL1Node3"); Node LL1Node4 = new Node("LL1Node4"); Node LL1Node5 = new Node("LL1Node5"); Node LL1Node6 = new Node("LL1Node6"); LL LL1 = new LL(LL1Node1); LL1.Append(LL1Node2); LL1.Append(LL1Node3); LL1.Append(LL1Node4); LL1.Append(LL1Node5); LL1.Append(LL1Node6); Node LL2Node1 = new Node("LL2Node1"); Node LL2Node2 = new Node("LL2Node2"); Node LL2Node3 = new Node("LL2Node3"); Node LL2Node4 = new Node("LL2Node4"); Node LL2Node5 = new Node("LL2Node5"); LL LL2 = new LL(LL2Node1); LL2.Append(LL2Node2); LL2.Append(LL2Node3); LL2.Append(LL2Node4); LL2.Append(LL2Node5); LL1.Print(); Console.WriteLine(""); LL2.Print(); LLMerge(LL1, LL2); Console.WriteLine(""); LL1.Print(); }
public static void Main(string[] args) { Node node1 = new Node("node1"); Node node2 = new Node("node2"); Node node3 = new Node("node3"); Node node4 = new Node("node4"); Node node5 = new Node("node5"); LL LL1 = new LL(node1); LL1.Append(node2); LL1.Append(node3); LL1.Append(node4); LL1.Append(node5); LL1.Print(); Console.WriteLine(""); ReverseLL(LL1); LL1.Print(); }
public static void Main(string[] args) { Node node1 = new Node("R"); Node node2 = new Node("A"); Node node3 = new Node("C"); Node node4 = new Node("E"); Node node5 = new Node("C"); Node node6 = new Node("A"); Node node7 = new Node("R"); LL LL1 = new LL(node1); LL1.Append(node2); LL1.Append(node3); LL1.Append(node4); LL1.Append(node5); LL1.Append(node6); LL1.Append(node7); Node node8 = new Node("H"); Node node9 = new Node("A"); Node node10 = new Node("N"); Node node11 = new Node("N"); Node node12 = new Node("A"); Node node13 = new Node("H"); LL LL2 = new LL(node8); LL2.Append(node9); LL2.Append(node10); LL2.Append(node11); LL2.Append(node12); LL2.Append(node13); Console.WriteLine(PalindromeChecker(LL1)); Console.WriteLine(PalindromeChecker(LL2)); }
/// <summary> /// Merges two linked lists /// </summary> /// <param name="LL1">A linked list</param> /// <param name="LL2">A linked list</param> /// <returns>Returns a merged linked list</returns> public static LL LLMerge(LL LL1, LL LL2) { LL1.Current = LL1.Head; LL2.Current = LL2.Head; Node temp = LL2.Current.Next; while (LL1.Current.Next.Next != null) { LL1.AddAfter(LL2.Head, LL1.Current); LL2.Head = temp; LL2.Current = LL2.Head; temp = LL2.Current.Next; LL1.Current = LL1.Current.Next.Next; } LL1.AddAfter(LL2.Head, LL1.Current); LL2.Head = temp; LL1.Append(LL2.Head); LL2.Head = null; return(LL1); }