資料結構和演算法學習日記 佇列

2021-10-01 02:05:54 字數 1287 閱讀 5564

佇列是一種特殊的線性表,可以用陣列或鍊錶來表示。

遵循先入先出的原則。

佇列的插入操作位於隊尾,佇列的刪除操作位於隊首。

「下溢」現象:當隊列為 空時,做出隊運算時產生的溢位現象。

「真上溢」現象:當佇列滿時,做入隊操作產生空間溢位的現象。

「假上溢」現象:由於入隊和出隊操作中,頭尾指標都只向上移動,從而導致被刪元素空間無法使用,此時若尾指標超過佇列空間上界,則無法進行插入操作。

為了解決「假上溢」問題,能夠重複利用佇列空間,因此對佇列進行改進,當佇列的尾指標或頭指標上移時超出了分配給佇列的空間,則將超出空間的頭指標或尾指標重新放到佇列的起始位置。

迴圈佇列的陣列實現:

public

class

arrayqueuedemo

}/**

* 實現環形佇列

*/class

arrayqueue

/** * 判斷是否 為空

* @return

*/public

boolean

isempty()

/** * 判斷是否滿

* @return

*/public

boolean

isfull()

/** * 加入新元素

* @param element

*/public

void

add(

int element)

arr[end]

= element;

end =

(end +1)

% maxsize;

}/**

* 獲取佇列元素

* @return

*/public

intget()

int value = arr[head]

; head =

(head +1)

% maxsize;

return value;

}/**

* 列印佇列

*/public

void

printqueue()

system.out.

println()

; system.out.

println

("------------------------------");

}/**

* 獲取有效元素個數

* @return

*/public

intgetsize()

}

資料結構和演算法學習 佇列(順序)

將尾指標往後移 rear 1 當front rear 空 若尾指標 rear 小於佇列的最大下標 maxsize 1,則將資料存入 rear所指的陣列元素中,否則無法存入資料。rear maxsize 1 佇列滿 class arrayqueue 判斷佇列是否滿了 public boolean is...

資料結構和演算法學習 棧

棧是一種重要的線性結構,可以說是線性表的一種具體形式 官方定義 棧是乙個後進先出的線性表,它要求只在表尾進行刪除和插入操作 棧是一種特殊的線性表 順序表 鍊錶 操作上有一些特殊要求 1.棧的元素必須 後進先出 2.棧的操作只能在這個線性表的表尾進行。注 對於棧來說,表尾稱為棧的棧頂 top 相應的表...

資料結構和演算法學習重點

1 資料結構是指一組資料的儲存結構 2 演算法就是運算元據的方法 3 資料結構和演算法是相輔相成的,資料結構是為演算法服務的,而演算法要作用在特定的資料結構之上。資料結構和演算法解決的是如何更省 更快地儲存和處理資料的問題,因此,我們就需要乙個考量效率和資源消耗的方法,這就是複雜度分析方法。在學習資...