91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么實現stack與queue數據結構

發布時間:2023-04-19 11:37:31 來源:億速云 閱讀:91 作者:iii 欄目:開發技術

這篇文章主要介紹了C++怎么實現stack與queue數據結構的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇C++怎么實現stack與queue數據結構文章都會有所收獲,下面我們一起來看看吧。

棧和隊列都是容器適配器搞出來的,對容器進行封裝,從而實現先進先出和后進先出的結構

stack模擬實現

常規實現數據結構的思路

template<class T>
class stack
{
public:
	//....
private:
	T* _a;
	size_t _size;
	size_t _capacity;
};

使用容器適配器:

C++怎么實現stack與queue數據結構

**棧的容器適配器Container 可以使用vector list deque(雙端隊列) , 這些容器都必須支持尾插和尾刪接口 push_back 和 pop_back, **stack的默認容器適配器使用deque

#pragma once
#include<iostream>
#include<deque>
using namespace std;
//棧的容量適配器Container 可以使用vector list deque-雙端隊列 
//必須支持尾插和尾刪 push_back  和 pop_back
//默認的容量適配器使用deque
//  template<class T,class Container = std::vector<T>>
//  template<class T,class Container = std::list<T>>
namespace Mango
{
template<class T, class Container = std::deque<T>>
class stack
{
public:
	void push(const T& x)
		_con.push_back(x);
	void pop()
		_con.pop_back();
	//返回棧頂元素 - 即容器的最后一個元素
	T top()
		return _con.back();
	size_t size()
		return _con.size();
	bool empty()
		return _con.empty();
private:
	Container _con;//容器適配器
};
}

設配的容器給成模板參數->我有默認的容器適配器,你也可以自己定義合適的,對容器進行封裝,達到后進先出的效果

queue模擬實現

隊列的容器適配器Container 必須支持pop_front 和push_back函數 尾插和頭刪.

所以可以使用list 和deque, 但是不能使用vector,因為不支持頭刪pop_front函數

queue默認的容器適配器使用deque

#pragma once
#include<iostream>
#include<deque>
using namespace std;
// 隊列的容器適配器Container 必須支持pop_front 和push_back  尾插和頭刪
// 所以可以使用list 和deque
// 但是不能使用vector,因為不支持頭刪pop_front
//默認的容量適配器使用deque
namespace Mango
{
template<class T, class Container = std::deque<T>>
class queue
{
public:
	//尾插
	void push()
		_con.push_back();
	//頭刪
	void pop()
		_con.pop_front();
	//取隊頭數據 -返回隊頭數據的引用
	T& front()
		return _con.front();
	//取隊尾數據 -返回隊尾數據的引用 
	T& back()
		return _con.back();
	size_t size()
		return _con.size();
	bool empty()
		return _con.empty();
private:
	Container _con;//容量適配器
};
}

關于“C++怎么實現stack與queue數據結構”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“C++怎么實現stack與queue數據結構”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古田县| 开封县| 仁布县| 揭西县| 浮山县| 宁津县| 洮南市| 平昌县| 湛江市| 慈利县| 如皋市| 娱乐| 安岳县| 胶南市| 北川| 琼结县| 崇阳县| 阿拉善左旗| 富蕴县| 丰城市| 道孚县| 木里| 桐乡市| 清水县| 讷河市| 桂林市| 青海省| 大城县| 汉川市| 咸阳市| 武山县| 屏东县| 青河县| 女性| 碌曲县| 商南县| 青铜峡市| 安西县| 德钦县| 汕头市| 武鸣县|