🐵指尖猴全新升级
第14课:手写一个栈
🛠️

手写一个栈

不靠现成的轮子,手搓一个栈!

📖知识引入

📦数组模拟
开一个数组当仓库,另用一个变量top当栈顶指针
⬆️push实现
stk[++top] = x:top先加1再存值,元素落在新栈顶
⬇️pop实现
top--:指针下移一格,等效于移除栈顶
🚨判空判满
top==0说明栈空,top==容量上限说明栈满,操作前必查
💡
信奥选手偏爱手写栈:一个数组加一个top变量,又快又稳不怕卡常

🔍手写栈完整实现

int stk[100005];  // 仓库
int top = 0;       // 栈顶指针,0表示空栈

// 入栈:先加后存
void push(int x) {
    stk[++top] = x;
}

// 出栈:指针下移
void pop() {
    if (top > 0) top--;   // 判空保护
}

// 看栈顶
int peek() {
    return stk[top];
}

// push(10) push(20) 后 peek() 返回 20

三五行代码一个栈,理解了原理,STL只是锦上添花

🎯小测验

第1题:手写栈中变量top的作用是?

第2题:top==0通常表示什么?

第3题:数组模拟栈的push核心代码是?

📝本课知识点

  • ✓数组+top就能模拟栈
  • ✓入栈stk[++top]=x
  • ✓操作前先判空防崩溃
第14课完成!继续探索下一课吧 🚀