關於棧簡單的理解就是乙個 「先進後出」的容器。下面為基本的操作:
#include 標頭檔案
stacks 建立乙個 儲存 int 型 的棧 ,類似的 int 還可以 改為:double float char 或者 結構體
s.push(x) 讓 x 這個元素進棧
s.pop() 棧中的 第乙個 元素出棧
s.top() 呼叫棧的第乙個元素
s.enpty() 判斷棧是否為空,如果為空 返回 1,如果不為空 返回 0
上面提到 棧的 理解,這裡 佇列的理解就是 乙個 「先進先出」 的容器,下面是基本操作:
#include 標頭檔案
queueq 建立乙個空佇列 這裡 與上面 棧的功能相同
q.push(x) 進佇列
q.front() 呼叫佇列的第乙個元素
q.pop() 佇列中的第乙個元素 出佇列
q.empty() 判斷 佇列是否為空,若為空 返回 1, 若不為空 返回 0
上面已經簡單的介紹了佇列,那麼優先佇列呢與上面的佇列 和 棧 是不同的,所謂優先就是 裡面儲存的元素 都對應乙個 優先值,哪個元素的優先值大 那麼就優先 出去。這裡 優先佇列 我們儲存 結構體 元素 , 比較 容易 體現出 優先 二字的所在.下面是 一些基礎操作:
// 下面是乙個 排隊看病的問題 很典型的 優先佇列問題
#include
#include
#include // 標頭檔案
using
namespace
std;
struct node // 定義乙個結構體
;bool
operator
< (const node s1, const node s2)
int main()
棧和優先佇列(一)
普通佇列 先進先出 後進後出 堆的基本表示 完全二叉樹 把元素順序排列成數的形狀,不缺父節點 左節點 右節點 不缺這些就是完全元素 二叉樹的性質就是 父節點大於左節點和右節點,左節點大於右節點 用陣列儲存二叉樹 查父節點和左接點 右節點 查父節點 i i 1 2 有虛擬節點 i i 2 查左節點 i...
佇列和優先佇列
佇列是一種先進先出的資料結構 可以定義乙個結構體,表示乙個佇列。struct queue 另外c 中有stl標準模板庫 封裝了queue類 標頭檔案 include queue queue int vis vis.pop 刪除隊首元素 vis.back 返回隊尾元素 vis.front 返回隊首元素...
棧和佇列的操作
1.順序棧的操作 include using namespace std define maxsize 100 define ok 1 define error 0 typedef int selemtype typedef int status typedef struct sqstack 順序棧...