package stack;
import java.util.Scanner;
public class LindedStackDemo {
public static void main(String[] args) {
LinkedStack linkedStack = new LinkedStack();
String key = "";
boolean loop = true;
Scanner scanner = new Scanner(System.in);
while(loop){
System.out.println("show:表示显示栈");
System.out.println("exit:表示退出");
System.out.println("push:表示压栈");
System.out.println("pop:表示弹栈");
System.out.println("请输入你的选择");
key = scanner.next();
switch(key){
case "show":
linkedStack.list();
break;
case "exit":
loop = false;
break;
case "push":
System.out.println("请输入一个数");
int i = scanner.nextInt();
linkedStack.push(i);
break;
case "pop":
linkedStack.pop();
break;
default:
System.out.println("输入有误!");
break;
}
}
}
}
class LinkedStack{
public ListNdoe head = new ListNdoe(-1);
//push元素
public void push(int i){
ListNdoe curr = head;
ListNdoe newNode = new ListNdoe(i);
while(true){
if(curr.next == null){
break;
}
curr = curr.next;
}
curr.next = newNode;
}
//pop
public void pop(){
ListNdoe curr = head;
if(curr.next == null){
System.out.println("栈为空!!!");
return;
}
while(true){
if(curr.next.next == null){
System.out.println(curr.next.value);
break;
}
curr = curr.next;
}
curr.next = null;
}
//list
public void list(){
ListNdoe curr = head;
if(curr.next == null){
System.out.println("栈为空!!!");
}
while(true){
if(curr.next == null){
break;
}
curr = curr.next;
System.out.println(curr.value);
}
}
}
class ListNdoe{
int value;
ListNdoe next;
public ListNdoe(int value){
this.value = value;
}
}
单链表实现栈(Java代码实现)
最新推荐文章于 2022-05-06 15:33:56 发布