예제 #1
0
        public StackG(StackG <T> first, StackG <T> second) // Объединение стеков
        {
            T[] stack1 = first.StackEx.ToArray();
            T[] stack2 = second.StackEx.ToArray();
            this.size = first.StackEx.Count() + second.StackEx.Count();
            StackEx   = new Stack <T>(size);

            for (int i = stack1.Length - 1; i >= 0; i--) // Заполнение первой части стека
            {
                Push(stack1[i]);
            }

            for (int i = stack2.Length - 1; i >= 0; i--)  // Заполнение второй части стека
            {
                Push(stack2[i]);
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            StackG <int> stack1 = new StackG <int>(5);

            stack1.Push(3);
            stack1.Push(5);
            stack1.print();
            StackG <int> stack2 = new StackG <int>(5);

            stack2.Push(6);
            stack2.Push(10);
            stack2.PopOut();
            stack2.print();
            StackG <int> stack3 = new StackG <int>(stack1, stack2); // Объединение стеков

            stack3.print();
            StackG <int> stack4 = new StackG <int>(stack3); // Инициализация другим стеком

            stack4.print();
        }
예제 #3
0
 public StackG(StackG <T> otherStack) // Инициализация другим стеком
 {
     StackEx = otherStack.StackEx;
     size    = otherStack.size;
 }