栈(思路+代码)

变量

top = -1;(后续查看)

maxSize

arr

思路:

先进后出

代码

import java.util.Scanner;


public class Test {
	public static void main(String[] args) {
		Stack as = new Stack(4);
		char k = ' ';
		boolean loop = true;
		Scanner sc = new Scanner(System.in);
		while(loop) {
			System.out.println("show:显示栈");
			System.out.println("pop:出栈");
			System.out.println("push:入栈");
			System.out.println("退出");
			k = sc.next().charAt(0);
			switch(k) {
				case 's':
					as.show();
					break;
				case 'o':
					int value = as.pop();
					System.out.println(value);
					break;
				case 'i':
					System.out.print("输入一个数:");
					int i = sc.nextInt();
					as.push(i);
					break;
				case 'e':
					sc.close();
					loop = false;
					break;
				default:
					break;
			}
		}
	}
}
class Stack{
	private int top = -1;
	private int[] arr;
	private int maxsize;
	
	public Stack(int nums) {
		arr = new int[nums];
		this.maxsize = nums;
	}
	
	//栈空
	public boolean isEmpty() {
		return this.top == -1;
	}
	
	//栈满
	public boolean isFull() {
		return this.top == this.maxsize - 1;
	}
	
	//压栈
	public void push(int val) {
		if(isFull()) {
			System.out.print("栈满!");
			return;
		}
		top++;
		arr[top] = val;
	}
	
	//弹栈
	public int pop() {
		if(isEmpty()) {
			System.out.print("栈空!");
			return -1;
		}
		int val = arr[top];
		top--;
		return val;	
	}
	
	//查看栈顶元素
	public int peak() {
		if(isEmpty()) {
			System.out.print("栈空!");
			return -1;
		}
		return  arr[top];
	}
	
	public void show() {
		if(isEmpty()) {
			System.out.print("栈空!");
			return;
		}
		for(int i = top; i >= 0; i--) {
			System.out.println(arr[i]);
		}
	}
	
	
	
	
	
}

猜你喜欢

转载自blog.csdn.net/qq_56127002/article/details/131549812
今日推荐