StackX.java
package cn.sdut.ch4;
public class StackX {
private int maxSize; //栈的大小
private long[] stackArray;
private int top; //栈顶
public StackX(int s) { //constructor
maxSize = s; //set array size
stackArray = new long[maxSize]; // create array
top = -1; //no items yet
}
public void push(long j) { //put item on top of stack
stackArray[++top] = j;
}
public long pop() {//take item from top of stack
return stackArray[top--]; //access item, decrement top
}
public long peek() { //peek at the top if stack
return stackArray[top];
}
public boolean isEmpty() {//true if stack is empty
return (top == -1);
}
public boolean isFull() { //true if stack is full
return (top == maxSize-1);
}
}
测试代码
public class StackApp {
public static void main(String[] args) {
/*StackX theStack = new StackX(10);
theStack.push(20);
theStack.push(40);
theStack.push(60);
theStack.push(80);
while(!theStack.isEmpty()) { //until it's empty
long value = theStack.pop(); //delete item from stack
System.out.println(value); //display it
}*/
//单词反转
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
StackX stackX = new StackX(input.length());
for(int i=0; i<input.length(); i++) {
char c = input.charAt(i);
stackX.push(c);
}
while(!stackX.isEmpty()) { //until it's empty
char value = (char) stackX.pop(); //delete item from stack
System.out.print(value); //display it
}
}
}