第14课:手写一个栈
进度 0/24
🛠️
手写一个栈
不靠现成的轮子,手搓一个栈!
📖知识引入
📦数组模拟
开一个数组当仓库,另用一个变量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课完成!继续探索下一课吧 🚀
