資料結構 佇列(FIFO)

2021-09-26 02:23:26 字數 2196 閱讀 9906

目錄

佇列介紹

陣列模擬佇列

思路:**:

問題分析並優化:

陣列模擬環形佇列

思路:**:

有序列表,可以用陣列或鍊錶來實現

先入先出(fifo)

定義乙個佇列

// 定義乙個佇列

public class arrayqueue

// 判斷佇列是否滿

public boolean iffull()

// 判斷佇列是否為空

public boolean isempty()

// 新增資料到佇列

public void addqueue(int n)

// 讓隊尾後移

rear++;

arr[rear] = n;

}// 獲取佇列的資料,出佇列

public int getqueue()

//front 後移

front++;

return arr[front];

}// 顯示對列的所有資料

public void showqueue()

for (int i = 0; i < arr.length; i++)

}// 獲取佇列的頭資料,注意不是取出資料

public int headqueue()

// 取出佇列頭資料

return arr[front + 1];}}

進行測試:注意idea的測試型別不能使用scanner,下面的方法要寫在main方法裡

// 建立乙個佇列

arrayqueue queue = new arrayqueue(3);

// 接收使用者輸入

char key = ' ';

scanner scanner = new scanner(system.in);

boolean looop = true;

// 輸出乙個選單

while (looop) catch (exception e)

break;

case 'h':

try catch (exception e)

break;

case 'e':

scanner.close();

looop = false;

break;

default:

break;}}

system.out.println("程式已經退出");

}

問題:以上**實現的佇列,陣列使用一次就不能用了,沒有達到復用的效果

優化:將這個陣列使用演算法,改進成乙個環形的佇列 ,取模:%

public class circlearrayqueue 

// 判斷佇列是否滿

public boolean iffull()

// 判斷佇列是否為空

public boolean isempty()

// 新增資料到佇列

public void addqueue(int n)

arr[rear] = n;

// 讓隊尾後移

rear = (rear+1) % maxsize;

}// 獲取佇列的資料,出佇列

public int getqueue()

//front 後移

int value = arr[front];

front = (front +1) % maxsize;

return value;

}// 顯示對列的所有資料

public void showqueue()

for (int i = front; i < front + size(); i++)

}// 求出當前佇列有效資料個數

public int size()

// 獲取佇列的頭資料,注意不是取出資料

public int headqueue()

// 取出佇列頭資料

return arr[front ];}}

同理進行測試即可。

C語言資料結構之FIFO

fifo first in first out 插入在表的一端進行,而刪除在表的另一端進行,我們將這種資料結構稱為隊或者佇列 就像排隊一樣,排在前面的先出,很形象 允許插入的一端稱為隊尾 rear 允許刪除的一端稱為 front 通常我們用得較多的是迴圈佇列 也就是當rear達到fifo的最大值後又...

資料結構 佇列

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