15.2.2 一个堆栈类

来源:互联网 发布:国外绘图软件 编辑:程序博客网 时间:2024/06/16 04:04

下面展示了一个用模板和泛型编写的堆栈类, 节点类使用内嵌类实现,并且用结尾哨兵(类似空对象的思想)来标记栈底.

package com.cnsuning.src;import java.lang.reflect.*;import java.util.*;public class Main {public static void main(String[] args) {LinkedStack<Integer> lStack = new LinkedStack<Integer>();lStack.push(11);lStack.push(22);lStack.push(33);lStack.push(44);lStack.push(55);lStack.push(66);Integer value = null;while (null != (value = lStack.pop())) {System.out.println(value);}}}class LinkedStack<T> {private static class Node<U> {private U value;private Node<U> next;Node(U value, Node<U> next) {this.value = value;this.next = next;}Node() {this.value = null;this.next = null;}public boolean end() {return value == null && next == null;}public U getValue() {return this.value;}public Node<U> getNext() {return this.next;}}private Node<T> top = new Node<T>();public void push(T value) {Node<T> newNode = new Node<T>(value, top);top = newNode;}public T pop() {if (this.top.end()) {return null;}T value = this.top.getValue();top = top.getNext();return value;}}


0 0
原创粉丝点击