package com.zoujc;
/**
* 用链表实现栈
*/
class MyLinkStack {
private Link first;
public MyLinkStack(){
first = null;
}
//判空
public boolean isEmpty(){
return first == null;
}
//从头插入
public void insertFirst(int dd){
Link link = new Link(dd);
link.next = first;
first = link;
}
//删除
public int deleteFirst(){
Link tmp = first;
first = first.next;
return tmp.dData;
}
//显示
public void display(){
Link current = first;
while (current != null){
current.display();
current = current.next;
}
System.out.println("");
}
}
class Link{
public int dData;
public Link next;
public Link(int dd){
dData = dd;
}
public void display(){
System.out.print(dData + " ");
}
}
class LinkStack{
public MyLinkStack myLinkStack;
public LinkStack(){
myLinkStack = new MyLinkStack();
}
//进栈
public void push(int data){
myLinkStack.insertFirst(data);
}
//出栈
public int pop(){
return myLinkStack.deleteFirst();
}
//判空
public boolean isEmpty(){
return myLinkStack.isEmpty();
}
//显示
public void display(){
System.out.print("Stack:");
myLinkStack.display();
}
public static void main(String[] args){
LinkStack linkStack = new LinkStack();
linkStack.push(20);
linkStack.push(30);
linkStack.push(40);
linkStack.display();
linkStack.pop();
linkStack.pop();
linkStack.display();
}
}
java版数据结构与算法—链表实现栈
最新推荐文章于 2021-08-30 06:12:31 发布