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]); } }
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(); }
public StackG(StackG <T> otherStack) // Инициализация другим стеком { StackEx = otherStack.StackEx; size = otherStack.size; }