是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為出隊。因為佇列只允許在一端插入,在另一端刪除,所以只有最早進入佇列的元素才能最先從佇列中刪除,故佇列又稱為先進先出(fifo—first in first out)
c++佇列queue模板類的定義在標頭檔案中,queue 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。c++佇列queue類成員函式有:
back() 返回最後乙個元素例如0-5,共5個元素,我們對其進行入隊出隊操作:empty() 如果佇列空則返回真
front() 返回第乙個元素
pop() 刪除第乙個元素
push() 在末尾加入乙個元素
size() 返回佇列中元素的個數
#include
#include
using
namespace std;
intmain()
for(
int i=0;
!myq.
empty()
; i++
) myq.
push(8
);//在佇列的最後一位新增乙個元素
printf
("佇列壓入的元素為:%d\n"
優先佇列:c++優先佇列類似佇列,但是在這個資料結構中的元素按照一定順序排列。
成員函式有:
1.empty() 如果優先隊列為空,則返回真
2.pop() 刪除第乙個元素
3.push() 加入乙個元素
4.size() 返回優先佇列中擁有的元素的個數
5.top() 返回優先佇列中有最高優先順序的元素
例**:
#include
#include
using
namespace std;
intmain()
for(
int i=
1;i<=
5;i++
)return0;
}
我們輸入亂序的一堆數,在輸出的時候我們可以看到,這些數是按照誰最大誰先輸出
現在對優先佇列進行自定義安排優先順序,這裡我們自定義了兩個佇列,它們的優先順序相反
**:
#include
#include
#include
using
namespace std;
struct node
} a;
struct node1
} b;
intmain()
printf
("佇列1中優先順序輸出順序為:\n");
while
(!q.
empty()
)printf
("\n");
printf
("佇列2中優先順序輸出順序為:\n");
while
(!q1.
empty()
)return0;
}
執行結果:
佇列與優先佇列(queue)
是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為...
棧 佇列與優先佇列
123 45 include stack int s 入棧 push 出棧 pop 取棧頂top 123 45 include queue int s 入隊 push 出隊 pop 取隊首元素 front 不刪除 123 4priority queue int pq 入隊 push 出隊 pop 取...
棧 佇列與優先佇列
123 45 include stack int s 入棧 push 出棧 pop 取棧頂top 123 45 include queue int s 入隊 push 出隊 pop 取隊首元素 front 不刪除 123 4priority queue int pq 入隊 push 出隊 pop 取...