private static void TestSingleLinkedListAddDeleteFindOperation() { // Single Linked List Operations Single.LinkedList<int> list = new Single.LinkedList<int>(); list.AddFirst(1); list.AddFirst(5); list.AddFirst(8); Single.ListNode<int> head = null; head = PrintListNodes(list, head, "Print List"); list.AddLast(18); list.AddFirst(12); list.AddLast(20); head = PrintListNodes(list, head, "Print List"); list.AddAfterNthNode(5, 19); head = PrintListNodes(list, head, "Add 19 after 5th Node"); list.RemoveAfterNthNode(1); head = PrintListNodes(list, head, "Remove 1st Node"); list.RemoveAfterNthNode(6); head = PrintListNodes(list, head, "Remove 6th Node"); list.RemoveAfterNthNode(4); head = PrintListNodes(list, head, "Remove 4th Node"); list.Remove(5); head = PrintListNodes(list, head, "Remove Item 5"); Single.ListNode<int> noderesult = list.FindKthNodeFormLast(list.Head, 3); Console.WriteLine(noderesult == null ? "NO Kth" : noderesult.Value + "__Found"); }
private static void TestSingleLinkedCycle() { // Single Linked List Operations Single.LinkedList<int> list = new Single.LinkedList<int>(); list.AddFirst(1); list.AddFirst(5); list.AddFirst(8); // set list tail.next to some node to create cycle list.Tail.Next = list.Head.Next; bool iscyclefound = list.IsListHasLoop(list.Head); Console.WriteLine("Cycle {0}", iscyclefound); }
private static void TestSingleLinkedPalindrome() { // Single Linked List Operations Single.LinkedList<int> list = new Single.LinkedList<int>(); //list.AddFirst(1); //list.AddLast(5); //list.AddLast(8); //list.AddLast(8); //list.AddLast(5); //list.AddLast(1); // set list tail.next to some node to create cycle bool ispalindrome = list.IsPalindrome(list.Head, list.Count); Console.WriteLine("Palindrome {0}", ispalindrome); }