【算法入门必刷】数据结构-栈(一)
【??途W面試入門必刷】算法入門-數據結構-棧(一)
- 前言
- 算法入門刷題訓練
- 題一:AB1 【模板】棧
- 題目分析
- 理論準備
- 題解
- 小結
📦個人主頁:一二三o-0-O的博客
🏆技術方向:C/C++客戶端資深工程師(直播+音視頻剪輯)
👨?💻作者簡介:數據結構算法與音視頻領域創作者
📒 系列專欄:??途W面試必刷
📣專欄目標:幫助伙伴們通過系統訓練,掌握數據結構與算法,收獲心儀Offer
📝推薦一個找工作神器:牛客刷題網 【面試經驗|實習招聘內推,求職就業一戰解決】
🧡如果對您有幫助的話,歡迎點贊👍收藏📂,關注不迷路
【算法入門必刷】數據結構-棧篇系列文章:
【算法入門必刷】數據結構-棧(一)
【算法入門必刷】數據結構-棧(二)
【算法入門必刷】數據結構-棧(三)
【算法入門必刷】數據結構-棧(四)
【算法入門必刷】數據結構-棧(五)
【算法入門必刷】數據結構-棧(六)
前言
開啟刷題,請點擊右邊鏈接進行跳轉點擊這里
算法入門刷題訓練
題一:AB1 【模板】棧
題目分析
描述
請你實現一個棧。
操作:
push x:將 加x 入棧,保證 x 為 int 型整數。
pop:輸出棧頂,并讓棧頂出棧
top:輸出棧頂,棧頂不出棧
根據題目描述是要實現一個棧,因此我們可以使用一個基礎的容器來封裝一個棧結構來實現棧的入棧,出棧以及返回棧頂元素的功能。這里選擇使用基礎容器數組:vector來封裝一個棧結構。
理論準備
首先我們要掌握vector的一些基礎操作:
添加操作
vector v;
v.push_back(1);//v = 1
v.emplace_back(2);//v = 1 2
刪除操作
vector v{ 1,2,3,4,5 };
v.erase(v.begin());//刪除1
v.erase(v.begin(),b.begin()+3);//刪除1到3
題解
class stack{
vector v;
}
void push(int x){
// 使用vector的添加方法
v.push_back(x);
}
void pop(){
// 如果數組為空,輸出報錯
if(v.size() == 0){
cout << “error” << endl;
}else{
// 數組不為空,輸出數組的最后一個元素
cout << v[v.size()-1] << endl;
// 輸出后,將最后一個元素從容器中刪除
v.erase(v.begin() + v.size()-1);
}
}
void top(){
// 如果數組為空,輸出報錯
if(v.size() == 0){
cout << “error” << endl;
}else{
// 數組不為空,返回數組的最后一個元素
cout << v[v.size()-1] << endl;
}
}
當提交成功后,會展示如下界面,那么恭喜這道題目就通過了!
小結
祝愿所有的伙伴都能拿到自己心儀的Offer!📣伙伴們點擊右邊鏈接立刻開啟刷題吧:牛客——刷題網
總結
以上是生活随笔為你收集整理的【算法入门必刷】数据结构-栈(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10开机自动打开http://go
- 下一篇: 独木带你玩转彩屏——应用1驱动彩屏(寄存