日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【栈】栈的基本操作实现模板的总结

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【栈】栈的基本操作实现模板的总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、棧的應用

棧是一種先進后出(FILO)的數據結構

  • 清空(clear):

    /*棧的清空操作就是把棧頂top置為-1*/ void clear(){top=-1; } /*清空棧,由于沒有直接用于清空棧的元素,所以使用while和pop組合*/ while(!st.size()) st.pop();

    ?

  • 獲取棧內元素個數(size):

    /*由于棧頂指針top始終指向棧頂元素,而下標是從0開始的,所以棧內元素要把top+1*/int size(){return top+1; }
  • 判空(empty):

    /*由棧頂指針top判斷的定義可知,僅當top==-1是為空,返回true,否則返回false*/ bool empty(){if(top==-1) return true; //棧空else return false; //棧非空 }
  • 進棧(push):

    /*push(x)操作將元素x置于棧頂,由于top始終指向棧頂元素,所以需要把top+1然后再把x存入top位置*/ void push(int x){st[++top]=x; }
  • 出棧(pop):

    /*pop()操作將棧頂元素出棧,而事實上可以將棧頂指針-1來實現這個效果*/ void pop(){top--; }
  • 取棧頂元素(top):

    /*由于棧頂指針top始終指向棧頂元素,所以st[top]就是棧頂元素*/ int top(){return st[top]; }
  • stack的常見用法

    棧,后進先出(FILO)

  • stack的定義: /*定義一個stack需要添加頭文件#include <stack>以及在頭文件下方加上using namespace std;stack<int> st; */stack<int> st;

    ?

  • stack容器內的元素訪問: /*只能通過top()函數來訪問棧頂元素*/st.top();
  • push()函數: /*push(x)將x入棧*/st.push(1);
  • top()函數: /*top()函數獲得棧頂元素*/st.top();
  • pop()函數: /*使用pop()函數彈出棧頂元素*/st.pop();
  • empty()函數: /*empty()可以檢測stack內是否為空,true為空,false為非空*/if(st.enpty()==true)
  • size()函數: /*通過size()函數來獲得棧的元素個數*/st.size();
  • ?

    總結

    以上是生活随笔為你收集整理的【栈】栈的基本操作实现模板的总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。