1.先创建一个结点类:
public class Link {
//节点数据
private long data;
//下一结点
private Link next;
public Link(long d){
this.data = d;
}
//显示结点数据
public void displayLink(){
System.out.println(data + " ");
}
public long getData() {
return data;
}
public void setData(long data) {
this.data = data;
}
public Link getNext() {
return next;
}
public void setNext(Link next) {
this.next = next;
}
}
2.创建链表
public class LinkList {
//第一个结点
private Link first;
//构造方法
public LinkList(){
first = null;
}
/**
* 判断链表是否为空
* @return
*/
public boolean isEmpty(){
return (first == null);
}
/**
* 插入数据
* @param d
*/
public void insertFirst(long d){
Link newLink = new Link(d);
newLink.setData(d);
newLink.setNext(first);
first = newLink;
}
/**
* 删除数据
* @return
*/
public long deleteFirst(){
Link temp = first;
first = first.getNext();
return temp.getData();
}
/**
* 显示链表数据
*/
public void displayList(){
Link current = first;
while(current != null){
current.displayLink();
current = current.getNext();
}
System.out.println(" ");
}
}
3.用链表实现栈
public class LinkStack {
//链表
private LinkList linkList;
public LinkStack(){
//实例化一个链表
linkList = new LinkList();
}
/**
* 添加数据
* @param dd
*/
public void push(long dd){
linkList.insertFirst(dd);
}
/**
* 弹出数据
* @return
*/
public long pop(){
return linkList.deleteFirst();
}
/**
* 显示栈内容
*/
public void displayStack(){
System.out.println("top-->bottom");
linkList.displayList();
}
}
应用:用创建的栈存取数据
public class LinkStackApp {
public static void main(String[] args) {
LinkStack linkStack = new LinkStack();
linkStack.push(20);
linkStack.push(15);
linkStack.displayStack();
linkStack.push(16);
linkStack.push(30);
linkStack.push(40);
linkStack.push(28);
linkStack.displayStack();
linkStack.pop();
linkStack.pop();
linkStack.displayStack();
}
}