1.先進先出
2.兩大基本操作:入隊(隊尾插入元素),出隊(隊頭刪除元素)
3.三大屬性:first(隊頭位置),last(隊尾位置),total(佇列中的資料個數)
1.交給印表機的作業存放在乙個佇列中
2.圖論中的一些演算法使用佇列提高執行效率(還未知)
3.作業系統中用得比較多
4.不同的硬體裝置傳輸資訊時
(1)陣列實現
1.陣列實現使用的是環形佇列
#pragma once
#include
"includes.h"
#define n 550
class
queue
;
2.入隊,需要判斷是否滿隊,插入即將last後移乙個單位,並放入資料
/**
*@name en_queue:在佇列尾部插入資料
*@param2 num:插入資料——序號
*@param3 t:插入資料——時間
*@ret:是否插入成功
**/bool queue::
en_queue
(string add,string num,string t)
else
}
3.出隊,需要判斷是否空隊,刪除即將first後移乙個單位
/**
*@name del_queue:刪除佇列首部資料
*@ret 是否刪除成功
**/bool queue::
del_queue()
else
}
4.建構函式初始化,列印函式列印佇列中所有資料,讀取檔案函式將資料從檔案中讀取後存入佇列。
/**
*@name queue:建構函式,初始化first和last以及total
**/queue::
queue
(void
)/**
*@name print_queue:列印佇列所有資料
*@ret none
**/void queue::
print_queue()
cout/i從first開始遍歷佇列
i=(i+1
)%n;}}
else
}/**
*@name read_file:從檔案中讀取資料插入佇列,共500個資料
*@param1 filename:檔名
**/bool queue::
read_file
(string filename)
else}}
in.close()
;return
true
;}
(2)鍊錶實現
1.鍊錶實現就不需要環形結構了
//queue_list.h
#pragma once
#include
"includes.h"
class
queue_list
;
2.入隊,新建新的節點,並分別考慮佇列中無節點和多個節點的情況
/**
*@name en_queue:在佇列尾部插入新的資料節點
*@param2 num:插入資料節點——序號
*@param3 t:插入資料節點——時間
*@ret:是否插入成功
**/bool queue_list::
en_queue_list
(string add, string num,string t)
else
return
true
;}
3.出隊,考慮無節點、、乙個節點和多個節點的情況。
/**
*@name del_queue:刪除佇列首部節點
*@ret 是否刪除成功
**/bool queue_list::
del_queue_list()
else
if(ql_first==ql_last)
else
}
4.初始化、列印中的迭代方法有些差異、讀取檔案資料
/**
*@name queue:建構函式,初始化first和last以及total
**/queue_list::
queue_list
(void
)/**
*@name print_queue:列印佇列所有資料
*@ret none
**/void queue_list::
print_queue_list()
}/**
*@name read_file:從檔案中讀取資料插入佇列,共500個資料
*@param1 filename:檔名
**/bool queue_list::
read_file
(string filename)
return
true
;}
資料結構 C 佇列實現和佇列簡介
佇列簡介 佇列 queue 是一種資料結構,可以在佇列的一端插入元素而在佇列的另一端刪除元素。1 允許刪除的一端稱為隊頭 front 2 允許插入的一端稱為隊尾 rear 3 當佇列中沒有元素時稱為空佇列。4 佇列亦稱作先進先出 first in first out 的線性表,簡稱為fifo 表。佇...
資料結構和演算法 佇列
佇列 通俗點的定義就是,排隊買票,先到的先買。就是先進先出。佇列和棧一樣都是操作受限的線性表資料結構 在隊尾入隊,隊頭出隊。同樣想象買票的流程。除非你經常插隊要不很容易理解!順序佇列 用陣列實現的佇列 鏈式佇列 用鍊錶實現的佇列 1 順序佇列的python 實現 首先說一下順序佇列的實現過程。與棧只...
資料結構 c佇列實現
使用雙向鍊錶 include 佇列結點的結構 typedef struct qnodeqnode 佇列 typedef struct queue queue 初始化,注意這裡使用一級指標 void initqueue queue q 入隊 void enqueue queue q,int val 設...