Пример #1
0
        private static void GenericDoublyLinkedListStackDemo()
        {
            DoublyLinkedListGenericStack <int> linkedListStack = new DoublyLinkedListGenericStack <int>();
            int choice = 1;

            do
            {
                Console.Clear();
                Console.WriteLine("1.Display the array\n2.Push An Element\n3.Pop an element\n4.Peek an element\n5.Exit\nPlease enter a choice");
                choice = Convert.ToInt32(Console.ReadLine());
                switch (choice)
                {
                case 1:
                    linkedListStack.display();
                    Console.ReadKey();
                    break;

                case 2:
                    Console.WriteLine("Enter the element to push\n");
                    int value = Convert.ToInt32(Console.ReadLine());
                    linkedListStack.push(value);
                    Console.WriteLine("Pushed successfully");
                    Console.ReadKey();
                    break;

                case 3:
                    var poppedvalue = linkedListStack.pop();
                    if (poppedvalue == null)
                    {
                        Console.WriteLine("Stack Underflow");
                    }
                    else
                    {
                        Console.WriteLine("The element popped is " + (int)poppedvalue);
                    }
                    Console.ReadKey();
                    break;

                case 4:
                    var peekedvalue = linkedListStack.peek();
                    if (peekedvalue == null)
                    {
                        Console.WriteLine("Stack Underflow");
                    }
                    else
                    {
                        Console.WriteLine("The element peeked is " + peekedvalue);
                    }
                    Console.ReadKey();
                    break;

                default:
                    Console.WriteLine("Please enter a valid choice");
                    Console.ReadKey();
                    break;
                }
            } while (choice != 5);
        }
Пример #2
0
        private static void TowerOfHanoiDemo()
        {
            Console.WriteLine("Enter the number of rings to shift");
            int ringsNum   = Convert.ToInt32(Console.ReadLine());
            int totalRings = ringsNum;
            DoublyLinkedListGenericStack <int> stackA = new DoublyLinkedListGenericStack <int>();
            DoublyLinkedListGenericStack <int> stackB = new DoublyLinkedListGenericStack <int>();
            DoublyLinkedListGenericStack <int> stackC = new DoublyLinkedListGenericStack <int>();

            while (ringsNum != 0)
            {
                stackA.push(ringsNum--);
            }
            stackA.display();

            SolveTowerOfHanoiRecursively(totalRings, ref stackA, ref stackC, ref stackB);
            Console.WriteLine("Displaying Source Stack :");
            stackA.display();
            Console.WriteLine("Displaying Destination Stack :");
            stackC.display();
            Console.WriteLine("Displaying Spare Stack :");
            stackB.display();
            Console.ReadKey();
        }