Java 栈

来源:互联网 发布:台湾民谣 知乎 编辑:程序博客网 时间:2024/05/29 09:12

栈:

package com.darren.test.datastructure;public class Stack {    private int[] data;    private int top;    private int maxSize;    public Stack(int size) {        this.maxSize = size;        data = new int[size];    }    /**     * 添加数据,并移动指针     *      * @param value     */    public void push(int value) {        if (top == maxSize) {            System.out.println("栈已满!");        } else {            data[top] = value;            top++;        }    }    /**     * 取出数据,并移动指针     *      * @return     */    public Integer pop() {        Integer value = null;        if (top == 0) {            System.out.println("栈已空!");        } else {            top--;            value = data[top];        }        return value;    }    /**     * 查看数据,不移动指针     *      * @return     */    public Integer peek() {        Integer value = null;        if (top == 0) {            System.out.println("栈已空!");        } else {            int key = top - 1;            value = data[key];        }        return value;    }    public int size() {        int size = data.length;        return size;    }}

栈测试:

package com.darren.test.datastructure;public class StackTest {    public static void main(String[] args) {        Stack stack = new Stack(5);        stack.push(5);        stack.push(4);        stack.push(3);        stack.push(2);        stack.push(1);        stack.push(0);        // test1(stack);        // test2(stack);        test3(stack);    }    /**     * 测试方式一     *      * @param stack     */    private static void test1(Stack stack) {        System.out.println("测试方式一");        while (true) {            Integer value = stack.pop();            if (value != null) {                System.out.println(value);            } else {                break;            }        }    }    /**     * 测试方式二     *      * @param stack     */    private static void test2(Stack stack) {        System.out.println("测试方式二");        int size = stack.size();        for (int i = 0; i < size; i++) {            System.out.println(stack.pop());        }    }    /**     * 测试方式三     *      * @param stack     */    private static void test3(Stack stack) {        System.out.println("测试方式三");        while (stack.peek() != null) {            System.out.println(stack.pop());        }    }}


0 0
原创粉丝点击