Exemplo n.º 1
0
        public T leftShift(int index, bool removeTop)
        {
            MyStack <T> stack = stacks[index];
            T           removed_item;

            if (removeTop)
            {
                removed_item = stack.Pop();
            }
            else
            {
                removed_item = stack.RemoveBottom();
            }

            if (stack.IsEmpty())
            {
                stacks.RemoveAt(index);
            }
            else if (stacks.Count > index + 1)
            {
                T v = leftShift(index + 1, false);
                stack.Push(v);
            }
            return(removed_item);
        }
Exemplo n.º 2
0
        public T Pop()
        {
            MyStack <T> last = GetLastStack();
            T           v    = last.Pop();

            if (last.size == 0)
            {
                stacks.RemoveAt(stacks.Capacity - 1);
            }
            return(v);
        }