C 中棧和佇列用法詳解

2021-07-29 06:52:17 字數 1461 閱讀 3147

1.c++棧用法詳解

堆疊是乙個容器的改編,棧是限定僅在表尾進行插入或刪除操作的線性表,因此表尾端成為棧頂,相應的,表頭端成為棧底,不含有任何元素的棧稱為空棧。它實現了乙個先進後出的資料結構(filo),

棧一般採用陣列作為其儲存結構,這樣做可以避免使用指標,簡化程式,當然陣列需要預先宣告靜態資料區的大小,但這不是問題,因為即便是頻繁進出入棧操作,任何時刻棧元素的實際個數也不會很多,

為棧預留乙個足夠大但又不占用太多空間並不是很困難,如果不能做到這一點,那麼節省記憶體的方法就是使用鍊錶儲存棧。

(1)包含標頭檔案 #include

(2)定義堆疊:stack模版類需要兩個模版引數,乙個是元素型別,乙個是容器型別,元素型別是必要的,容器型別是可選的,預設是棧型別。stacks;

(3)相關操作:

s.empty()          如果棧為空返回true,否則返回false

s.size() 返回棧中元素的個數

s.pop() 刪除棧頂元素但不返回其值

s.top() 返回棧頂的元素,但不刪除該元素

s.push() 在棧頂壓入新元素

(4)**例項:

#include "stdafx.h"

#include #include using namespace std;

int _tmain(int argc, _tchar* argv)

n=s.size();

cout<<"堆疊個數:"<2.c++佇列用法詳解

佇列queue是一種容器介面卡,它給予程式設計師一種先進先出(fifo)的資料結構。

(1)包含標頭檔案:#include

(2)定義佇列:queue模版類需要兩個模版引數,乙個是元素型別,乙個是容器型別,元素型別是必要的,容器型別是可選的,預設是

佇列型別。queueq;

(3)相關操作:

queue入隊,如例:q.push(x); 將x 接到佇列的末端。

queue出隊,如例:q.pop(); 彈出佇列的第乙個元素,注意,並不會返回被彈出元素的值。

訪問queue隊首元素,如例:q.front(),即最早被壓入佇列的元素。

訪問queue隊尾元素,如例:q.back(),即最後被壓入佇列的元素。

判斷queue佇列空,如例:q.empty(),當佇列空時,返回true。

訪問佇列中的元素個數,如例:q.size()

(4)**例項:

#include "stdafx.h"

#include #include #include using namespace std;

int _tmain(int argc, _tchar* argv)

n=s.size();

n1=q.size();

cout<<"堆疊個數:"<

C 中棧和佇列

使用標準庫的棧和佇列時,先包含相關的標頭檔案 include include定義棧如下 stack stk 定義佇列如下 queue q 棧提供了如下的操作 s.empty 如果棧為空返回true,否則返回false s.size 返回棧中元素的個數 s.pop 刪除棧頂元素但不返回其值 s.top...

C 中的棧和佇列用法的簡介

使用標準庫的棧和佇列時,先包含相關的標頭檔案 include include 定義棧如下 stackstk 定義佇列如下 queueq 棧提供了如下的操作 s.empty 如果棧為空返回true,否則返回false s.size 返回棧中元素的個數 s.pop 刪除棧頂元素但不返回其值 s.top ...

C STL 棧和佇列詳解

一.解釋 1.棧 結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算...