public void BreakCheckIfCyclic(CustomLinkedList customLinkedList) { Console.WriteLine("\r\nBreakCycles\r\n"); if (customLinkedList == null || customLinkedList.Next == null) { Console.WriteLine($" {customLinkedList.Data} "); } else { var slow = customLinkedList.Next; var fast = customLinkedList.Next.Next; while (fast != null && fast.Next != null) { if (fast == slow) { break; } fast = fast.Next.Next; slow = slow.Next; } if (fast == slow) { while (slow.Next != fast.Next) { slow = slow.Next; fast = fast.Next; } fast.Next = null; } var current = customLinkedList; while (current != null) { Console.Write($" {current.Data} "); current = current.Next; } } }
public bool CheckIfCyclic(CustomLinkedList customLinkedList) { if (customLinkedList == null || customLinkedList.Next == null) { return(false); } var slow = customLinkedList.Next; var fast = customLinkedList.Next.Next; while (fast != null && fast.Next != null) { if (fast == slow) { return(true); } fast = fast.Next.Next; slow = slow.Next; } return(false); }
static void Main(string[] args) { var tree1 = new Tree(1); var tree2 = new Tree(2); var tree3 = new Tree(3); var tree4 = new Tree(4); tree1.AddConnection(tree2); tree1.AddConnection(tree3); tree2.AddConnection(tree4); //tree4.AddConnection(tree1); BreadthFirstSearch.Traverse(tree1); DepthFirstSearch.Traverse(tree1); var binaryTreecoc = new BinaryTreeCocoon(); binaryTreecoc.Insert(100); binaryTreecoc.Insert(10); binaryTreecoc.Insert(200); binaryTreecoc.Insert(400); binaryTreecoc.Insert(50); binaryTreecoc.Insert(5); binaryTreecoc.Insert(8); binaryTreecoc.Insert(1); binaryTreecoc.Traverse(); binaryTreecoc.ReversTraverse(); binaryTreecoc.LeftViewTraverse(); binaryTreecoc.RightViewTraverse(); var linkedlist = new CustomLinkedList(1); linkedlist.Next = new CustomLinkedList(2); linkedlist.Next.Next = new CustomLinkedList(3); linkedlist.Next.Next.Next = linkedlist.Next; var ops = new LinkedListOperations(); Console.WriteLine("\r\nCheckCycle"); Console.WriteLine(ops.CheckIfCyclic(linkedlist)); ops.BreakCheckIfCyclic(linkedlist); var mimStack = new MinimumStackOrderOfOne(); Console.WriteLine("\r\nMinimumStack"); mimStack.Push(10); mimStack.Push(100); Console.WriteLine(mimStack.GetMinimum()); mimStack.Push(5); mimStack.Push(20); mimStack.Push(30); Console.WriteLine(mimStack.GetMinimum()); mimStack.Pop(); mimStack.Pop(); mimStack.Pop(); Console.WriteLine(mimStack.GetMinimum()); mimStack.Push(10000); mimStack.Push(50); var data = new SortedArrayToBST().Run(); var sortedss = SelectionSort.Sort(new int[] { 100, 200, 20, 4, 10, 35, }); Console.WriteLine($"\r\nSelectionSort : {JsonConvert.SerializeObject(sortedss)} \r\n"); var sortedis = InsertionSort.Sort(new int[] { 100, 200, 20, 4, 10, 35, }); Console.WriteLine($"\r\nInsertionSort : {JsonConvert.SerializeObject(sortedis)} \r\n"); var arr = new int[] { 100, 200, 20, 4, 10, 35, }; Console.WriteLine($"\r\nHeapSortSort Initials : {JsonConvert.SerializeObject(arr)} \r\n"); var sortedhs = HeapSort.Sort(arr); Console.WriteLine($"\r\nHeapSortSort : {JsonConvert.SerializeObject(sortedhs)} \r\n"); var ar2 = new int[] { 100, 200, 20, 4, 10, 35, }; var sortedhs2 = HeapSort.Sort2(ar2); Console.WriteLine($"\r\nHeapSortSortGeks : {JsonConvert.SerializeObject(sortedhs2)} \r\n"); var ar3 = new int[] { 100, 200, 20, 4, 10, 35, }; var sortedqs = QuickSort.Sort(ar2); Console.WriteLine($"\r\n QuickSort : {JsonConvert.SerializeObject(sortedqs)} \r\n"); Console.ReadKey(); }