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版数据结构与算法—链表实现栈
猜你喜欢
转载自blog.csdn.net/weixin_38799368/article/details/84261361
今日推荐
周排行