佇列的基本操作 鏈式佇列的類模板定義

2021-07-13 11:03:30 字數 1456 閱讀 8527

定義

佇列(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初始化為乙個空的鏈...