用链表实现栈

栈最大的特点就是:先进后出、后进先出,把握这个特点后,我们可以用链表实现栈

/**
 * 链接点类
 * 
 * @author zhang
 *
 */
public class Link {
	public long dData;
	public Link next;

	public Link(long dData) {
		this.dData = dData;
	}

	public void displayLink() {
		System.out.print(dData + " ");
	}
}
/**
 * 链表类
 * 
 * @author zhang
 *
 */
public class LinkList {
	private Link first;

	public LinkList() {
		first = null;
	}

	public boolean isEmpty() {
		return first == null;
	}

	public void insertFirst(long dd) {
		Link newLink = new Link(dd);
		newLink.next = first;
		first = newLink;
	}

	public long deleteFirst() {
		Link temp = first;
		first = first.next;
		return temp.dData;
	}

	public void displayList() {
		Link current = first;
		while (current != null) {
			current.displayLink();
			current = current.next;
		}
		System.out.println();
	}
}
/**
 * 用链表实现一个栈
 * @author zhang
 *
 */
public class LinkStack {
	private LinkList theList;
	public LinkStack(){
		theList=new LinkList();
	}
	
	public void push(long j){
		theList.insertFirst(j);
	}
	
	public long pop(){
		return theList.deleteFirst();
	}
	
	public boolean isEmpty(){
		return theList.isEmpty();
	}
	
	public void displayStack(){
		System.out.print("Stack(top-->bottom):");
		theList.displayList();
	}
	
}

猜你喜欢

转载自1084647490.iteye.com/blog/2316016