无奈专业内暂无数据结构与算法可
最近在利用Java进行数据结构与算法的学习
进行到泛型栈的学习(其实已经知道很多数据结构和算法,只是希望 用Java配个这本书实现学习一遍,巩固,增强)
泛型栈代码:
FixedCapacityStackOfStrings.java
package fixedCapacityStackOfStrings;
public class FixedCapacityStackOfStrings<T> {
private int N =0 ;
private T a[] ;
public FixedCapacityStackOfStrings(int caps) {
a= (T[]) new Object[caps] ;
}
public boolean isEmpty() { return N==0 ; }
public int size() {return N ;}
public void push(T obj) { a[N++] = obj ;}
public T pop() { return a[--N] ;}
}
代码极其简洁,每个方法只有一行。
测试类
Test.java
package fixedCapacityStackOfStrings;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
FixedCapacityStackOfStrings<String> foo = new FixedCapacityStackOfStrings<String>(100);
try {
/*
* 使用Scanner从终端读取字符串
*/
Scanner sc = new Scanner(System.in);
/*
* 当终端仍有输入时循环
*/
while(sc.hasNext()){
String s = sc.next();
/*
* 设置字符串 "-"为出站标志
*/
if(s.equals("-") && !foo.isEmpty())
System.out.print(foo.pop() + " ");
/*
* 顺便玩一下compareTo方法
* 若输入的字符串不为"-"即将其入栈
*/
else if(s.compareTo("-")!=0)
foo.push(s);
}
sc.close();
}catch(Exception e){
System.out.println("Something wrong");
}
}
}