核心代码
public class Stack {
//节点
private class Node{
Object obj;
Node next;
}
//栈针(用于指向栈顶元素)
private Node node_first = null;
//计数器
private int Nub = 0;
public int getNub() {
return Nub;
}
//判断栈是否为空
public Boolean IsEmpty(){
return node_first == null;
}
//弹栈pop
public Object pop(){
if(Nub == 0 || node_first == null){
System.out.println("栈已空,无法弹栈");
return "";
}
Object T = node_first.obj;
node_first = node_first.next;
Nub--;
return T;
}
//压栈push
public void push(Object obj){
//新节点的数据
Node NewNode = new Node();
NewNode.obj = obj;
NewNode.next = node_first;
node_first = NewNode;
Nub++;
}
//遍历输出
public void printf(){
Node t = node_first;
for(int i = 0; i < Nub; i++){
System.out.print(t.obj + " ");
t = t.next;
}
}
}
测试代码
public class Text {
public static void main(String[] args){
Stack text = new Stack();
System.out.println(text.getNub());
System.out.println(text.IsEmpty() ? "栈为空" : "栈内有值");
text.push(3);
text.push(4);
text.push(5);
text.printf();
System.out.println(text.IsEmpty() ? "栈为空" : "栈内有值");
System.out.println(text.getNub());
text.pop();
text.pop();
text.pop();
text.pop();
text.pop();
System.out.println(text.IsEmpty() ? "栈为空" : "栈内有值");
System.out.println(text.getNub());
}
}
输出结果:
"C:\Program Files\Java\jdk1.8.0_333\bin\java.exe" "-javaagent:D:\IDEA\IntelliJ IDEA Community Edition 2020.3\lib\idea_rt.jar=51426:D:\IDEA\IntelliJ IDEA Community Edition 2020.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_333\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\rt.jar;E:\······后端······\1.2 ····java系列····\01_代码库\练习\栈(链表)\out\production\untitled" Text
0
栈为空
5 4 3 栈内有值
3
栈已空,无法弹栈
栈已空,无法弹栈
栈为空
0
进程已结束,退出代码为 0
感谢观看~