1. 程式人生 > >結構體 queue(佇列FIFO)入門

結構體 queue(佇列FIFO)入門

佇列:一種特殊的線性表,是一種先進先出(First In First Out)的資料結構。它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列中沒有元素時,稱為空佇列。

成員函式:
q.empty()判斷佇列q是否為空,當佇列q空時,true,否false
q.size()訪問佇列q中的元素個數。(不可寫成sizeof(q)或size(q))
q.push(a)會將一個元素a置入佇列q中。
q.front()會返回佇列q內的第一個元素(也就是第一個被置入的元素)。
q.back()會返回佇列q中最後一個元素(也就是最後被插入的元素)
q.pop()會從佇列q中移除第一個元素。

程式實現以及輸出:

#include<iostream>
#include<queue>
using namespace std;
int head=0,tail=0,y;
queue<int>q;
int main()
{
    int t,cz,p;
    cin>>t;
    while(t--)
    {
        cin>>p;
        q.push(p);
    }
    q.pop();
    if(q.empty())cout<<"no";
    else
    {
      cout
<<q.front()<<endl;//FI隊首 訪問不刪除 cout<<q.back()<<endl; //FO隊尾 訪問不刪除 cout<<q.size()<<endl; } return 0; }

<1>
輸入
4
23 34 45 56
輸出
34
56
3
<2>
輸入
1
23
輸出
no

樣例解釋:
<1>
輸入四個元素,均放入,後POP第一個元素,佇列不為空,訪問此時隊首隊尾和佇列中元素數量。
<2>
輸入一個元素,Pop

char型queque也可以定義

#include<iostream>
#include<queue>
using namespace std;
int head=0,tail=0,y;
queue<char>q;
int main()
{
    int t;
    char cz;
    cin>>t;
    while(t--)
    {
        cin>>cz;
        q.push(cz);
    }
    cout<<q.front()<<endl;;
    cout<<q.back(); 
    return 0;   
}

輸入 5
queue
輸出 q