佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點
空佇列時,front和rear都指向頭結點
**如下:
package com.oupeng.p5鍊錶;
import com.oupeng.p3佇列.queue;
public class linkedqueueimplements queue
@override
public int getsize()
@override
public boolean isempty()
@override
public void clear()
@override
public void enqueue(e e)
@override
public e dequeue()
@override
public e getfront()
@override
public e getrear()
public string tostring() else
return false;
}}
入隊操作:
入隊就是在鍊錶的表尾插入節點:
public void enqueue(e e)
出對操作:
出隊操作時,就是頭結點的後繼節點出隊,將頭結點的後繼改為它後面的結點,若煉表除頭結點只剩下乙個元素,則需要將rear指向頭結點
public e dequeue()
對於迴圈隊和鏈隊的比較,可以從倆個方面來考慮,從時間上,其實他們的基本操作都是常數時間,即都為o(1),不過迴圈佇列是事先申請好空間,使用期間釋放,而對於鏈佇列,每次申請和釋放結點也會存在一些時間開銷,如果入隊出現頻繁,則倆者還是有細微的差異。對於空間上來說,迴圈佇列必須有乙個固定長度,所以就有了儲存元素個數和空間浪費的問題。而鍊錶佇列不存在這個問題,儘管它需要乙個指標域,會產生一下空間上的開銷,單也可以接受。所以在空間上,鏈佇列更加靈活
總的來說,在可以確定佇列長度最大值的情況下,建議用迴圈佇列,如果你無法預估佇列的長度時,則用鏈佇列
佇列的鏈式儲存結構
佇列的鏈式儲存結構可以建立乙個頭結點,乙個指向頭結點的指標front,乙個指向尾節點的指標rear。新增乙個節點的時候將rear指向新節點,取乙個節點的時候將front指向下個節點的下乙個節點。佇列鏈式儲存.cpp 定義控制台應用程式的入口點。include stdafx.h struct link...
佇列的鏈式儲存結構
1 佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點。空佇列時,front和rear都指向頭結點。鏈佇列的結構為 include using namespace std define ok ...
佇列的鏈式儲存結構
佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點,如下圖所示 空佇列時,front和rear都指向頭結點。鏈佇列的結構為 typedef int qelemtype typedef ...