算法学习1:定容字符串栈的Java实现
代码
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/*
*定容字符串栈(数组实现)
* 成员变量:
* String[] a数组用于存储字符串
* int N 用于存储数组大小
* 成员方法:
* 构造方法 CapacityStack(int cap)
* push(String item) 添加字符串
* pop() 删除最近添加的字符串
* isEmpty() 检查是否为空
* size() 栈中字符串数量
*
*/
public class CapacityStack {
//成员变量
private String[] a;
private int N;
//构造方法
public CapacityStack(int cap){
a = new String[cap];
}
public void push(String item){
a[N] = item;
N++;
}
public String pop(){
return a[--N];
}
public Boolean isEmpty(){
if (N == 0){
return true;
}else{
return false;
}
}
public int size(){
return N;
}
//测试用例
public static void main(String[] args) throws FileNotFoundException {
CapacityStack s = new CapacityStack(100);
Scanner sc = new Scanner(new File("D:\\Documents\\Projects\\JavaProjects\\Algorithm\\src\\basic\\tobe"));
while (sc.hasNext()){
String item = sc.next();
if (!item.equals("-")){
s.push(item);//如果输入不是-则入栈
}else if (!s.isEmpty()){
System.out.print(s.pop()+" ");//否则,如果栈非空,最近入栈的出栈
}
}
System.out.println("("+s.size()+" left in the stack)");
}
}
TXT文本
to be or not to - be - - that - - - is