CTCI 1, 3.1

Source: Internet
Author: User

Describe how you cocould use a single array to implement three stacks.

Divide the array into three fixed parts, each stands for a stack.

/*Fixed Size Stacks*/import java.util.*;public class ThreeStacks {    int stackSize = 100;    int[] buffer = new int[stackSize * 3];    int[] stackPointer = {-1, -1, -1};    public void push(int stackNum, int key) throws Exception {        if(stackPointer[stackNum] + 1 >= stackSize) {            throw new Exception("Out of Memory");        }        stackPointer[stackNum]++;        buffer[stackNum * stackSize + stackPointer[stackNum]] = key;    }    public int pop(int stackNum) throws Exception {        if(stackPointer[stackNum] == -1) {            throw new Exception("No Elements");        }        int key = buffer[stackNum * stackSize + stackPointer[stackNum]];        stackPointer[stackNum]--;        return key;    }    public int peek(int stackNum) throws Exception {        if(stackPointer[stackNum] == -1) {            throw new Exception("No Elements");        }        return buffer[stackNum * stackSize + stackPointer[stackNum]];    }    public boolean isEmpty(int stackNum) {        return stackPointer[stackNum] == -1;    }    public static void main(String[] args) {        ThreeStacks ts = new ThreeStacks();        try {            ts.push(0, 10); ts.push(1, 20); ts.push(2, 30);            ts.push(0, 90);            System.out.print(ts.pop(0) + " " + ts.pop(1) + " " + ts.pop(0) + " " + ts.pop(2));        }        catch(Exception e) {            System.out.println(e.toString());        }    }}

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.