Example #1
0
 public Queue(Queue Q1)
 {
     if (Q1.Empty()) { this.head = null; this.tail = null; }
     else
     {
         this.head = new Node(null, Q1.head.data);
         Node n1, n2, n3;
         n1 = Q1.head.next;
         n2 = head;
         while (n1 != null)
         {
             n3 = new Node(null, n1.data);
             n2.next = n3;
             n2 = n2.next;
             n1 = n1.next;
         }
         this.tail = n2;
     }
 }
Example #2
0
        static void Main()
        {
            Stack S = new Stack();
            Queue Q = new Queue();
            int[] A = new int[10];
            Console.WriteLine(@" Команды очереди:
              ______________________________________________________________
             | Qpush 'data' - добавление элемента в очередь                 |
             | QMpush 'data' - добавление набора элементов в очередь        |
             | Qpop - удаление элеманта из очереди                          |
             | Qempty - проверка на пустоту                                 |
             | Qdelete - вывести и очистить очередь                         |
             | Q1 - проверка конструктора копирования (создание и вывод Q1) |
             |______________________________________________________________|

            Команды стека:
              ______________________________________________________________
             | Spush 'data' - добавление элемента в стек                    |
             | SMpush 'data' - добавление набора элементов в стек           |
             | Spop - удаление элеманта из стека                            |
             | Sempty - проверка на пустоту                                 |
             | Sdelete - вывести и очистить стек                            |
             | S1 - проверка конструктора копирования (создание и вывод S1) |
             |______________________________________________________________|
            exit - выход
            ");
            String s = Console.ReadLine();
            String[] str = s.Split(' ');
            while (!str[0].Equals("exit"))
            {
                switch (str[0])
                {
                    case ("Qpush"): Q.Push(int.Parse(str[1])); break;
                    case ("QMpush"): for (int i = 1; i < str.Length; i++) A[i - 1] = int.Parse(str[i]);
                        pushM(Q, A);
                        break;
                    case ("Qpop"): Console.WriteLine("Элемент {0} удален из очереди", Q.Pop()); break;
                    case ("Qempty"): Console.WriteLine(Q.Empty() ? "Очередь пустая" : "очередь не пустая"); break;
                    case ("Qdelete"): delete(Q); break;
                    case ("Q1"): Queue Q1 = new Queue(Q); delete(Q1); break;
                    case ("Spush"): S.Push(int.Parse(str[1])); break;
                    case ("SMpush"): for (int i = 1; i < str.Length; i++) A[i - 1] = int.Parse(str[i]);
                        pushM(S, A);
                        break;
                    case ("Spop"): Console.WriteLine("Элемент {0} удален из очереди", S.Pop()); break;
                    case ("Sempty"): Console.WriteLine(S.Empty() ? "стек пустой" : "стек не пустой"); break;
                    case ("Sdelete"): delete(S); break;
                    case ("S1"): Stack S1 = new Stack(S); delete(S1); break;
                    default: Console.WriteLine("Неверная команда!"); break;
                }
                s = Console.ReadLine();
                str = s.Split(' ');
            }
        }