package 数据结构链栈表;
public class Linknode {
private String date;
private Linknode next;
private Linknode top;
public Linknode() {
}
public Linknode(String date) {
this.date = date;
}
//初始化栈表
public void InitLink(){
top=null;
}
//判断栈表是否为空
public boolean isEmpty(){
return top==null;
}
//进栈
public void push(String name){
Linknode newNode=new Linknode(name);
newNode.next=top;
top=newNode;
}
//出栈
public String pop(){
if(this.isEmpty()){
System.out.println("栈为空!无法出栈");
return null;
}else {
String name=top.date;
top = top.next;
return name;
}
}
//返回栈顶元素 不出栈
public String peak(){
if(this.isEmpty()){
System.out.println("栈为空!无栈顶元素");
return null;
}else {
return top.date;
}
}
//将栈中所有数据出栈
public int printStack(){
int count=0;
System.out.println("开始出栈");
while (!this.isEmpty()){
System.out.println(top.date);
top=top.next;
count++;
}
System.out.println("出栈完毕!");
System.out.println("共出栈了"+count+"个数据");
return count;
}
public static void main(String[] args) {
Linknode myStack = new Linknode();
myStack.InitLink();//初始化栈
myStack.push("李龙威");//进栈
myStack.push("朱仕杰");
myStack.push("李逸然");
System.out.println(myStack.isEmpty());//判断空
myStack.pop();//出栈
System.out.println("栈顶元素为:"+myStack.peak());//返回栈顶元素 不出栈
myStack.printStack();//打印所有栈元素
System.out.println(myStack.isEmpty());//判断空
}
}
//对应测试结果![](https://img-blog.csdnimg.cn/fa95c57d97b04a2e930ef3e9b7cd0c91.png)