C (標準庫)棧和佇列以及優先佇列的使用

2021-07-11 17:09:02 字數 2669 閱讀 7602

/*使用標準庫的棧*/

#include //標頭檔案

stacks; //定義乙個 int 型的棧

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

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

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

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

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

/*使用標準庫的佇列*/

#include //標頭檔案

queueq; //定義乙個 int 型的佇列

q.empty() //如果隊列為空返回true,否則返回false

q.size() //返回佇列中元素的個數

q.pop() //刪除佇列首元素但不返回其值

q.front() //返回隊首元素的值,但不刪除該元素

q.push() //在隊尾壓入新元素

q.back() //返回佇列尾元素的值,但不刪除該元素

/*優先佇列*/

/*優先順序佇列支援的操作*/

q.empty() //如果隊列為空,則返回true,否則返回false

q.size() //返回佇列中元素的個數

q.pop() //刪除隊首元素,但不返回其值

q.top() //返回具有最高優先順序的元素值,但不刪除該元素

q.push(item) //在基於優先順序的適當位置插入新元素

/*以下為優先佇列的測試***/

#include#include#include #include #include#includeusing namespace std;

//定義比較結構

struct cmp1

};struct cmp2

};struct number2

for(i=0; num1[i].x; i++)

que5.push(num1[i]);

for(i=0; num2[i].x; i++)

que6.push(num2[i]);

printf("採用預設優先關係:\n(priority_queueque;)\n");

printf("queue 0:\n");

while(!que.empty())

puts("");

puts("");

printf("採用結構體自定義優先順序方式一:\n(priority_queue,cmp>que;)\n");

printf("queue 1:\n");

while(!que1.empty())

puts("");

printf("queue 2:\n");

while(!que2.empty())

puts("");

puts("");

printf("採用標頭檔案\"functional\"內定義優先順序:\n(priority_queue,greater/less>que;)\n");

printf("queue 3:\n");

while(!que3.empty())

puts("");

printf("queue 4:\n");

while(!que4.empty())

puts("");

puts("");

printf("採用結構體自定義優先順序方式二:\n(priority_queueque)\n");

printf("queue 5:\n");

while(!que5.empty())

puts("");

printf("queue 6:\n");

while(!que6.empty())

puts("");

return 0;}/*

執行結果 :

採用預設優先關係:

(priority_queueque;)

queue 0:

83 72 56 47 36 22 14 10 7 3

採用結構體自定義優先順序方式一:

(priority_queue,cmp>que;)

queue 1:

7 10 14 22 36 47 56 72 83 91

queue 2:

83 72 56 47 36 22 14 10 7 3

採用標頭檔案"functional"內定義優先順序:

(priority_queue,greater/less>que;)

queue 3:

7 10 14 22 36 47 56 72 83 91

queue 4:

83 72 56 47 36 22 14 10 7 3

採用結構體自定義優先順序方式二:

(priority_queueque)

queue 5:

7 10 14 22 36 47 56 72 83 91

queue 6:

83 72 56 47 36 22 14 10 7 3

*/

棧和佇列以及優先佇列 知識點

棧的定義 stack 資料型別 棧的名稱 佇列的定義 queue 資料型別 佇列名稱 實現 以int為例 stack sta queue que 棧名sta,佇列名que sta.push 元素入棧 que.push 元素佇列 sta.pop 最頂端元素出棧 que.pop 最底端元素出佇列 sta...

c 佇列,棧,優先佇列的基本操作

優先佇列 priority queue 的基本操作 struct node struct node empty 隊列為空返回1 pop 出隊 push 入隊 top 返回佇列中優先順序最高的元素 size 返回佇列中元素的個數 佇列 que.empty 如果隊列為空返回true,否則返回false ...

C 標準庫之棧(stack)和佇列(queue)

在c 標準庫 stl 中,實現了棧和佇列,方便使用,並提供了若干方法。以下作簡要介紹。1 棧 stack 說明及舉例 使用棧,要先包含標頭檔案 include 定義棧,以如下形式實現 stack s 其中type為資料型別 如 int,float,char等 棧的主要操作 s.push item 將...