栈由于是临时存储,所以通常大小很小
StackX类方法:
构造方法根据参数规定的容量创建一个新栈,栈的域包括表示最大容量的变量。数组本身以及变量top,他存储栈顶元素的下标。
push()方法:
将top自增一,使它指向原顶端数据项上面的一个位置。并在这个位置上存储一个数据项。再次提醒,top是插入数据项之前递增的。
pop()方法:
返回top标识的数据项值,然后top减一。
class StackX {
private int maxSize;
private long[] stackArray;
private int top;
public StackX(int s)
{
maxSize = s;
stackArray = new long[maxSize];
top = -1;
}
public void push(long j)
{
stackArray[++top] = j;
}
public long pop()
{
return stackArray[top--];
}
public long peek()
{
return stackArray[top];
}
public boolean isEmpty()
{
return (top == -1);
}
public boolean isFull() {
return (top == maxSize-1);
}
}
class StackApp
{
public static void main(String[] args) {
StackX theStack = new StackX(10);
theStack.push(10);
theStack.push(20);
theStack.push(30);
theStack.push(40);
while(!theStack.isEmpty())
{
long value = theStack.pop();
System.out.print(value);
System.out.print(" ");
}
System.out.println("end");
}
}
40 30 20 10 end
单词逆序:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class StackX1 {
private int maxSize;
private long[] stackArray;
private int top;
public StackX1(int s)
{
maxSize = s;
stackArray = new long[maxSize];
top = -1;
}
public void push(long j)
{
stackArray[++top] = j;
}
public long pop()
{
return stackArray[top--];
}
public long peek()
{
return stackArray[top];
}
public boolean isEmpty()
{
return (top == -1);
}
public boolean isFull() {
return (top == maxSize-1);
}
}
class Reverser
{
private String input;
private String output;
public Reverser(String in)
{
input = in;
}
public String doRev()
{
int StackSize = input.length();
StackX1 theStack = new StackX1(StackSize);
for(int j=0;j<input.length();j++)
{
char ch = input.charAt(j);
theStack.push(ch);
}
output = " ";
while(!theStack.isEmpty())
{
char ch = (char) theStack.pop();
output = output + ch;
}
return output;
}
}
class ReverseApp
{
public static void main(String[] args) throws IOException {
String input,output;
while(true)
{
System.out.print("enter");
System.out.flush();
input = getString();
if(input.equals(" "))
break;
Reverser theReverser = new Reverser(input);
output = theReverser.doRev();
System.out.println(output);
}
}
private static String getString() throws IOException{
// TODO Auto-generated method stub
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
}
}
enter kdjfklajkfaj
jafkjalkfjdk
enter klda;kflakf;kfa
afk;fkalfk;adlk
enter