Example #1
0
            public void push(int item)
            {
                StackPlate stack = getStack(listOfStacks.Count - 1);

                if (!stack.isFull())
                {
                    stack.push(item);
                }
                else
                {
                    stack = new StackPlate(this.capacityStacks);
                    stack.push(item);
                    listOfStacks.Add(stack);
                }
            }
Example #2
0
            private int leftShif(int index)
            {
                int        numberStacks = listOfStacks.Count;
                StackPlate prevStack    = getStack(index);
                int        result       = prevStack.pop();

                for (int i = index + 1; i < numberStacks; i++)
                {
                    StackPlate stack = getStack(i);
                    int        val   = stack.getBottom();
                    if (stack.isEmpty() && this.listOfStacks.Count > 1)
                    {
                        listOfStacks.RemoveAt(i);
                    }
                    prevStack.push(val);
                    prevStack = stack;
                }
                return(result);
            }