資料結構和演算法分析(三) C 實現佇列

2021-09-28 16:17:47 字數 2636 閱讀 9644

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=(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 設...