链表与数组是java中更多复杂数据结构的实现基础。
本例亦可作为其它泛型数据结构的实现模板。
import java.util.Scanner; public class StackList<Item> { private Note first; private int N; private class Note{ private Item element; private Note next; } public void push(Item element){ Note newFirst = new Note(); newFirst.element = element; newFirst.next =first; first = newFirst; N++; } public Item pop(){ Note OldFirst; OldFirst = first; first = first.next; N--; return OldFirst.element; } public int size(){ return N; } public boolean isEmpty(){ return first ==null; } public static void main(String[] args) { // TODO Auto-generated method stub StackList<String> st = new StackList<String>(); Scanner scanner = new Scanner(System.in); String line = scanner.nextLine(); String[] str=line.split("\\s+"); for(String element:str){ if (!element.equals("-")) st.push(element); else System.out.println(st.pop()); //System.out.print(st.size()); } scanner.close(); } }
对于像我一样的java入门者,请注意例子中的element.equls("-"),如果改为 element != "-",将无法获得预知的结果。
运行结果:
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-10 07:30:33