定義
佇列(queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表
(1)允許刪除的一端稱為隊頭(front)。
(2)允許插入的一端稱為隊尾(rear)。
(3)當佇列中沒有元素時稱為空佇列。
(4)佇列亦稱作先進先出(first in first out)的線性表,簡稱為fifo表。
佇列的修改是依先進先出的原則進行的。新來的成員總是加入隊尾(即不允許"加塞"),每次離開的成員總是佇列頭上的(不允許中途離隊),即當前"最老的"成員離隊。
【例】在佇列中依次加入元素a1,a2,…,an之後,a1是隊頭元素,an是隊尾元素。退出佇列的次序只能是a1,a2,…,an。
"queue.h"
#pragma once
#include using namespace std;
#include "assert.h"
typedef int datatype;
templatestruct node
};templateclass queue
~queue()//析構函式
if (_tail)
}void push(const t& data)//入隊
else
++_size;
} void pop()//出隊
else
--_size;
} void printqueue()//列印佇列
node* pnode = null;
pnode = _head;
while(pnode != _tail)
cout<_data<_data;
} t& back()//返回佇列的隊尾元素
protected:
bool empty()//判斷佇列是否為空
size_t size()//佇列的長度
private:
node* _head;//隊頭指標
node* _tail;//隊尾指標
size_t _size;//佇列長度
};
"test.cpp"
#define _crt_secure_no_warnings 1
#include "queue.h"
void test()
{ queuequeue;
queue.push(1);
queue.push(4);
queue.push(7);
queue.push(9);
queue.printqueue();
queue.pop();
queue.pop();
queue.printqueue();
int ret = queue.back()-queue.front();
cout<
鏈式佇列的基本操作
佇列 queue 也是運算受限的線性表。是一種先進先出 first in first out 簡稱fifo 的線性表。只允許在表的一端front進行插入,而在另一端rear進行刪除。隊首 front 允許進行刪除的一端稱為隊首。隊尾 rear 允許進行插入的一端稱為隊尾。例如 排隊購物。作業系統中的...
鏈式佇列的基本操作
操作介紹 1 建立乙個鏈式佇列 2 入隊乙個元素 3 出隊乙個元素 4 獲取隊首元素 5 清空佇列 6 判斷佇列是否為空 7 求佇列長度 8 輸出當前的佇列 9 退出作業系統 include include using namespace std typedef struct qnode 結點結構 ...
C 鏈式佇列基本操作
1 include 2 define queueelementtype int 3using namespace std 45 結點 6 typedef struct node 7linkqueuenode 1112 佇列 13 struct linkqueue14 1819 將q初始化為乙個空的鏈...