佇列的鏈式儲存結構

2021-09-27 07:08:07 字數 1446 閱讀 7205

佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點

空佇列時,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 ...