Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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;

        }
Ejemplo n.º 7
0
 public void EventHandlerDelete(CircularLinkedList <T> list, T value)
 {
     Console.WriteLine("Deleted value: " + value);
 }
Ejemplo n.º 8
0
 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;
                }
            }
        }