佇列僅僅同意一端進行插入操作,還有一端進行刪除操作。佇列是一種先進先出的線性表。簡稱fifo。同意插入的一段為隊尾,同意刪除的一端為隊頭。
與棧不同的是,佇列的出隊元素在隊頭,那麼佇列沒出去乙個元素,後面的元素就要依次像前移動。這樣他的時間複雜度就是o(n)。
考慮上面截圖的流程感覺效率非常低,起始我們的佇列能夠以還有一種方式來處理,就是元素不懂,而隊頭的指標移動。這樣它的時間複雜度就為o(1)。
上面攻克了效率低的問題,可是會存在控制項浪費的現象。之前已經出隊的元素。控制項還在那,以下我們引入迴圈佇列的概念,解決問題。
我們把佇列頭尾相接的這種儲存結構稱之為迴圈佇列。
rear:隊尾所指向的佇列位置。
font:隊頭所指向的佇列位置。
queuesize:佇列最大長度。
推斷佇列是否滿:(rear + 1) % queuesize == font。
計算佇列長度:(rear - font + queuesize ) % queuesize
佇列的鏈式儲存結構與單鏈表的鏈式儲存結構一致,僅僅只是是元素尾進頭出,我們稱之為鏈佇列。
入隊操作,將an的後繼節點改為e的位址,然後尾節點指向e。
出隊操作,
兩個佇列的選擇。看詳細的需求。與之前總結棧的差別一致,假設元素的大小確定則使用順序佇列最好,假設元素的大小不確定則使用連佇列最好。
資料結構 佇列
一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...
資料結構 佇列
資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...
資料結構 佇列
code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...