使用数组实现的自定义栈结构

来源:互联网 发布:c语言 if语句 字符串 编辑:程序博客网 时间:2024/05/17 09:30
package com.hebtu.java.vector;/** * 自定义的 栈 结构 * @author Xmh * */public class MyStack {private int maxSize; //栈的大小private long[] stackArray; private int top; //栈顶public MyStack(int s) {maxSize = s; // 设置栈的大小stackArray = new long[maxSize]; //创建一个数组top = -1; //top:-1 表示栈中还没有元素} /** * 压栈 */public void push(long j){//stackArray[++top] = j;stackArray[top+1] = j;top = top + 1;}/** * 出栈 * @return */public long pop(){//long j = stackArray[top--];long j = stackArray[top];top = top -1;return j;}/** * 取栈顶元素 */public long peek(){return stackArray[top];}/** * 是否为空 * @return */public boolean isEmpty(){if(top == -1){return true;}return false;}/** * 是否为满栈 * @return */public boolean isFull(){if(top == maxSize-1){return true;}return false;}}
以下是对MyStack.java进行测试的类
<pre name="code" class="java">package com.hebtu.java.vector;import org.junit.Test;public class MyStackTest {public static MyStack myStack = null;public static int max = 10;{myStack = new MyStack(max);}@Testpublic void testPush() {myStack.push(10);myStack.push(20);myStack.push(50);myStack.push(30);myStack.push(40);while(!myStack.isEmpty()){long value = myStack.pop();System.out.println(value);}}@Testpublic void testPop() {}/** * 测试 使用栈对单词进行倒序输出 */@Testpublic void testReverser(){String word = "HelloWorld Stack";MyStack stack = new MyStack(word.length());for(int i=0;i<word.length();i++){char c = word.charAt(i);stack.push(c);}while(!stack.isEmpty()){char s = (char) stack.pop();System.out.print(s);}}}



0 0