栈是一种常用的数据结构,其基本方式为先进后出
栈的实现方式一般为两种:链表和数组,先来看一下用链表实现的方式
代码如下:
/**
* 利用链表实现栈
* @author Victor Gong
*
* @param <Item> 栈中元素的数据类型
*/
public class LinkedStack<Item> {
private Node first; //头结点
private int n; //栈的大小
private class Node{
private Node next;
private Item item;
public Node(Item item) {
super();
this.item = item;
}
}
public LinkedStack() {
super();
first = null;
n = 0;
}
/**
*
* @return 栈的大小
*/
public int size() {
return n;
}
/**
* 将元素放入栈中
* @param item 元素
*/
public void push(Item item) {
Node oldFirst = first;
first = new Node(item);
first.next = oldFirst;
n++;
}
/**
*
* @return 栈顶的元素
*/
public Item peek() {
return first.item;
}
/**
* 出栈
* 删除并返回栈顶的元素
* @return 栈顶的元素
*/
public Item pop() {
if (isEmpty()) {
return null;
}
Item x