資料結構 佇列(一)

2021-09-16 22:16:32 字數 1586 閱讀 9634

## 概念簡述

## 特點

## 原理實現

## 時間複雜度分析

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

後端(rear)進行插入操作(入隊),進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊首。佇列中

沒有元素時,稱為空佇列。和棧一樣,佇列是一種操作受限制的線性表,相比陣列,佇列對應的操作是數

組的子集。

1. 只能從一端(隊尾)新增元素,只能從另一端(隊首)取出元素

2. 儲存元素先進先出fifo:first in first out)

1. 準備介面

// 準備介面

public inte***ce queue

2. 準備實現類

// 準備實現類:基於動態陣列實現

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 string tostring()

}return res.tostring();

}public int getcapacity()

}

3. 準備測試類

// 準備測試類

public static void main(string args)

}}

void enqueue(e)          o(1)      //均攤

e dequeue()                o(n)      

e front()                       o(1)    

int getsize()                 o(1)    

boolean isempty         o(1)

[注意]:

1. 由於對於佇列的基礎入隊操作時間複雜度為o(1),當涉及到resize方法即發生擴容時,因為並非每一次

都要進行擴容操作,經過均攤複雜度分析依然為o(1)

2. 由於在進行出隊操作時,隊首元素移除後,整個陣列佇列中其餘元素都要依此向前移動一位,故此操作時

間複雜度為o(n)

資料結構 佇列(一)

圖一 線性佇列 圖二 環形佇列 一 線性佇列和環形佇列的比較 二 深入了解環形佇列 front隊頭 第乙個元素的下標 隊滿 rear 1 n front 隊空 front rear 首先,我們要學會定義乙個結構體,這個環形佇列中就包括了資料,front,rear define size 10 typ...

資料結構 佇列

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