static void Main(string[] args) { CircularLinkedList <string> circularList = new CircularLinkedList <string>(); EventCatcher <string> catcher = new EventCatcher <string>(); circularList.Empty += catcher.EventHandlerEmpty; circularList.AddEvent += catcher.EventHandlerAdd; circularList.DeleteEvent += catcher.EventHandlerDelete; circularList.Add("Tom"); circularList.Add("Bob"); circularList.Add("Alice"); circularList.Add("Jack"); foreach (var item in circularList) { Console.WriteLine(item); } circularList.Remove("Bob"); Console.WriteLine("\n После удаления: \n"); foreach (var item in circularList) { Console.WriteLine(item); } circularList.RemoveLast(); Console.WriteLine("\n После удаления останнього: \n"); foreach (var item in circularList) { Console.WriteLine(item); } circularList.Clear(); Console.ReadLine(); }
static void Main(string[] args) { CircularLinkedList <int> list = new CircularLinkedList <int>(); list.AddLast(1); list.AddLast(2); list.AddLast(3); Console.WriteLine("List count = {0}", list.Count); Console.WriteLine("Head = {0}", list.Head.Value); Console.WriteLine("Tail = {0}", list.Tail.Value); Console.WriteLine("Head's Previous = {0}", list.Head.Previous.Value); Console.WriteLine("Tail's Next = {0}", list.Tail.Next.Value); Console.WriteLine("************List Items***********"); foreach (int i in list) { Console.WriteLine(i); } Console.WriteLine("************List Items in reverse***********"); for (IEnumerator <int> r = list.GetReverseEnumerator(); r.MoveNext();) { Console.WriteLine(r.Current); } Console.WriteLine("************Adding a new item at first***********"); list.AddFirst(0); foreach (int i in list) { Console.WriteLine(i); } Console.WriteLine("************Adding item before***********"); list.AddBefore(2, 11); foreach (int i in list) { Console.WriteLine(i); } Console.WriteLine("************Adding item after***********"); list.AddAfter(3, 4); foreach (int i in list) { Console.WriteLine(i); } Console.ReadKey(); }
static void Main(string[] args) { CircularLinkedList <string> Categories = new CircularLinkedList <string>(); Categories.AddLast("Sport"); Categories.AddLast("Culture"); Categories.AddLast("History"); Categories.AddLast("Geography"); Categories.AddLast("People"); Categories.AddLast("Technology"); Categories.AddLast("Nature"); Categories.AddLast("Science"); Random random = new Random(); int totalTime = 0; int remainingTime = 0; foreach (string category in Categories) { if (remainingTime <= 0) { Console.WriteLine("Press [Enter] to startor any other key to exit."); switch (Console.ReadKey().Key) { case ConsoleKey.Enter: totalTime = random.Next(1000, 5000); remainingTime = totalTime; break; default: return; } } int categoryTime = (-450 * remainingTime) / (totalTime - 50) + 500 + (22500 / (totalTime - 50)); remainingTime -= categoryTime; Thread.Sleep(categoryTime); Console.ForegroundColor = remainingTime <= 0 ? ConsoleColor.Red : ConsoleColor.Gray; Console.WriteLine(category); Console.ForegroundColor = ConsoleColor.Gray; } Console.Read(); }
static void Main(string[] args) { CircularLinkedList cll = new CircularLinkedList(); int[] arr = { 1, 2, 3, 4, 5 }; foreach (int i in arr) { cll.InsertAtHead(i); } cll.Traverse(); cll.DeleteLastNode(); cll.Traverse(); cll.DeleteLastNode(); cll.Traverse(); Console.Read(); }
static void Main(string[] args) { CircularLinkedList <string> circularList = new CircularLinkedList <string>(); circularList.Add("Tom"); circularList.Add("Bob"); circularList.Add("Alice"); circularList.Add("Jack"); foreach (var item in circularList) { Console.WriteLine(item); } circularList.Remove("Bob"); Console.WriteLine("\nAfter Delete:"); foreach (var item in circularList) { Console.WriteLine(item); } }
public void Concatenate(CircularLinkedList list) { if (last == null) { last = list.last; return; } if (list.last == null) { return; } Node p = last.link; last.link = list.last.link; list.last.link = p; last = list.last; }
public void EventHandlerDelete(CircularLinkedList <T> list, T value) { Console.WriteLine("Deleted value: " + value); }
public void EventHandlerAdd(CircularLinkedList <T> list, T value) { Console.WriteLine("Added value: " + value); }
static void Main(string[] args) { CircularLinkedList list = new CircularLinkedList(); bool flag = true; while (flag) { Console.Clear(); Console.WriteLine("Demo: Circular Linked List of Integer"); Console.WriteLine("--------------------------------"); Console.WriteLine("1 - Add node"); Console.WriteLine("2 - Remove node"); Console.WriteLine("3 - Insert node in position"); Console.WriteLine("4 - Replace node in position"); Console.WriteLine("5 - Sum of all nodes"); Console.WriteLine("6 - Index Of node"); Console.WriteLine("7 - Print list"); Console.WriteLine("8 - Exit"); Console.WriteLine("--------------------------------"); ConsoleKeyInfo cki = Console.ReadKey(true); switch (cki.Key) { // Add Node case ConsoleKey.D1: Console.WriteLine("Enter node to add:"); string insertInput = Console.ReadLine(); if (Int32.TryParse(insertInput, out int insertNode)) { list.Add(insertNode); Console.WriteLine("Node " + insertNode + " has been added."); } else { Console.WriteLine("Invalid input. Enter integer number"); } Delay(); break; // Remove Node case ConsoleKey.D2: Console.WriteLine("Enter node to remove:"); string removeInput = Console.ReadLine(); if (Int32.TryParse(removeInput, out int removeNode)) { if (list.IndexOf(removeNode).Equals(-1)) { Console.WriteLine("No such node in the list"); } else { list.Remove(removeNode); Console.WriteLine("Node " + removeNode + " has been removed from list."); } } else { Console.WriteLine("Invalid input. Enter integer number"); } Delay(); break; // Insert Node in Position case ConsoleKey.D3: int value = 0, position = 0; while (true) { Console.WriteLine("Enter node to insert:"); string getInsert = Console.ReadLine(); if (Int32.TryParse(getInsert, out int getNode)) { value = getNode; break; } else { Console.WriteLine("Invalid input. Enter integer number"); } } while (true) { Console.WriteLine("Enter position:"); string getPosition = Console.ReadLine(); if (Int32.TryParse(getPosition, out int getPos)) { position = getPos; break; } else { Console.WriteLine("Invalid input. Enter integer number"); } } if (position <= list.GetSize()) { list.Insert(value, position); Console.WriteLine("Node has been inserted."); } else { Console.WriteLine("Position is out of range."); } Delay(); break; // Replace node in position case ConsoleKey.D4: int replaceValue = 0, replacePosition = 0; while (true) { Console.WriteLine("Enter new node:"); string getInsert = Console.ReadLine(); if (Int32.TryParse(getInsert, out int getNode)) { replaceValue = getNode; break; } else { Console.WriteLine("Invalid input. Enter integer number"); } } while (true) { Console.WriteLine("Enter position:"); string getPosition = Console.ReadLine(); if (Int32.TryParse(getPosition, out int getPos)) { replacePosition = getPos; break; } else { Console.WriteLine("Invalid input. Enter integer number"); } } if (replacePosition <= list.GetSize()) { list.Replace(replaceValue, replacePosition); Console.WriteLine("Item has been replaced."); } else { Console.WriteLine("Position is out of range."); } Delay(); break; // Sum of all nodes case ConsoleKey.D5: list.PrintList(); Console.WriteLine("The Sum of nodes: " + list.Sum()); Delay(); break; // Index of node case ConsoleKey.D6: list.PrintList(); Console.WriteLine("Enter node:"); string nodeInput = Console.ReadLine(); if (Int32.TryParse(nodeInput, out int indexNode)) { Console.WriteLine("Index of node " + indexNode + ": " + list.IndexOf(indexNode)); } else { Console.WriteLine("Invalid input. Enter integer number"); } Delay(); break; case ConsoleKey.D7: list.PrintList(); Console.WriteLine("\nPress any key..."); Console.ReadLine(); break; case ConsoleKey.D8: flag = false; break; default: Console.WriteLine("Invalid menu item, enter numbers 1-4"); Delay(); break; } } }