模拟栈
栈是比较简单的,用数组模拟
栈的特点:后进先出
模板
int stk[N], tt = 0;
stk[++tt] = x;
tt --;
stk[tt];
if(tt>0){ }
|
题目
AcWing
Ac828 模拟栈
描述
实现一个栈,栈初始为空,支持四种操作:
(1) “push x” – 向栈顶插入一个数x;
(2) “pop” – 从栈顶弹出一个数;
(3) “empty” – 判断栈是否为空;
(4) “query” – 查询栈顶元素。
现在要对栈进行M个操作,其中的每个操作3和操作4都要输出相应的结果。
解答
import java.io.*; public class Main { static final int N = 100010; static int[] stk = new int[N]; static int tt = 0; public static void push(int val){ stk[++tt] = val; } public static void pop(){ tt--; } public static boolean empty(){ return tt == 0; } public static int query(){ return stk[tt]; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int m = Integer.parseInt(br.readLine()); while(m-->0){ String[] s = br.readLine().split(" "); if(s[0].equals("push")) { int val = Integer.parseInt(s[1]); push(val); }else if(s[0].equals("pop")) { pop(); }else if(s[0].equals("query")) { System.out.println(query()); }else { if(empty()) { System.out.println("YES"); }else { System.out.println("NO"); } } } } }
|
栈是比较简单的数据结构
stk[tt] ,tt要先
Others
人无完人,何况是小白Chen我呢,文章难免会出现一些错误,若是读者们发现错误,可以评论或者联系我,Chen会尽力改正,给大家更优秀的博文。