資料結構 佇列

2021-09-13 17:49:50 字數 2243 閱讀 4564

1.佇列

佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,

和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。

2.佇列的模型

3.基本演算法

1.獲取有效長度

2.是否為空

3.進隊

4.出隊

5.獲得對頭

6.清除隊

7.重寫tostring方法

4.實現方法一,順序佇列

使用列表實現順序佇列。

獲取有效長度

佇列的存的有效長度。

是否為空

有效長度是否為0。

進隊在陣列的尾部進入元素。

出隊在陣列的頭部刪除元素,後面的元素向前移動。

獲得對頭

獲取列表頭部的元素。

清除隊將列表的有效長度置為0。

重寫tostring方法

重新拼接字串,列印輸出。

**:

package p01.動態陣列;

public class arrayqueueimplements queue

public arrayqueue(int capacity)

@override

public int getsize()

@override

public boolean isempty()

@override

public void enqueue(e e)

@override

public e dequeue()

@override

public e getfront()

@override

public e getrear()

@override

public void clear()

@override

public string tostring()

stringbuilder sb=new stringbuilder("[");

for(int i=0;i二,鍊錶佇列

使用鍊錶列表實現。

獲取有效長度

佇列的存的有效長度。

是否為空

有效長度是否為0。

進隊在列表的尾部進入元素。

出隊在列表的頭部刪除元素,後面的元素向前移動。

獲得對頭

獲取列表頭部的元素。

清除隊將列表的有效長度置為0。

重寫tostring方法

重新拼接字串,列印輸出。

**:package p02.動態鍊錶;

import p01.動態陣列.queue;

public class linkedqueueimplements queue

@override

public int getsize()

@override

public boolean isempty()

@override

public void enqueue(e e)

@override

public e dequeue()

@override

public e getfront()

@override

public e getrear()

@override

public void clear()

}

5.迴圈順序佇列

將順序表收尾相連,形成迴圈表。

實現方式:

資料結構 佇列

一 佇列的迴圈陣列實現。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...