0
点赞
收藏
分享

微信扫一扫

Java实现链式栈

at小涛 2022-03-11 阅读 77
package lanqiao;

import java.util.*;

public class Main {
	
	public static Stack InitStack() {
		Stack stack=new Stack(0);//构建一个节点stack当作头节点data表示stack长度
		
		return stack;
	}
	public static Stack Push(Stack stack,int num) {//头插法
		if(stack.next!=null) {
			Stack s=new Stack(num);
			s.next=stack.next;
			stack.next=s;
			stack.data++;
		}else {
			Stack s=new Stack(num);
			stack.next=s;
			stack.data++;
		}
		return stack;
	}
	public static Stack Pop(Stack stack) {//头删法(自己起的哈哈哈哈)
		if(stack.data<1) {
			System.out.println("该栈以空!!!");
		}else {
			stack.next=stack.next.next;
			stack.data--;
		}
		return stack;
	}
	public static int GetTop(Stack stack) {
		if(stack.data==0) {
			System.out.println("该栈为空栈!");
			return -1;
		}
		return stack.next.data;
	}
	public static void main(String[] args) {
		Stack stack=InitStack();
		Push(stack,5);
		Push(stack,2);
		Push(stack,1);
		System.out.println("栈顶元素为:"+GetTop(stack));
		Pop(stack);
		System.out.println("栈顶元素为:"+GetTop(stack));
		Push(stack,999);
		System.out.println("栈顶元素为:"+GetTop(stack));
		
		
	}
}

class Stack{
	int data;
	Stack next;
	public Stack() {
		
	}
	public Stack(int data) {
		this.data=data;
	}
}

结果:

栈顶元素为:1
栈顶元素为:2
栈顶元素为:999

举报

相关推荐

0 条评论