資料結構 迴圈佇列的實現

2021-09-27 13:38:53 字數 1519 閱讀 7218

介面:

package com.company.queue;

/** * queue

* 佇列介面

* @author heng

**/public inte***ce queue

實現類:

package com.company.queue;

/** * loopqueue

* 迴圈佇列的實現

* 迴圈佇列需要從底層寫起 不再用array類了

* @author heng

* @date 2019/10/2

**/public class loopqueueimplements queue

public loopqueue()

/*** 返回陣列大小

* 因為浪費了乙個所以需要-1

* @return

*/public int getcapacity()

/*** 入隊

* @param e

*/@override

public void enqueue(e e)

data[tail] = e;

tail = (tail + 1) % data.length;

size++;

}/**

* 擴容

* @param newcapatity

*/private void resize(int newcapatity)

data = newdata;

front = 0;

tail = size;

}/**

* 出隊

* @return

*/@override

public e dequeue()

e ret = data[front];

data[front] = null;

front = (front + 1) % data.length;

size --;

/*** 縮容

*/if (size == getcapacity() / 4 && getcapacity() / 2 != 0)

return ret;

}/**

* 拿到隊首

* @return

*/@override

public e getfront()

return data[front];

}@override

public int getsize()

@override

public boolean isempty()

@override

public string tostring()

}return builder.tostring();

}}

測試:

public static void main(string args) 

}}

資料結構 佇列 迴圈佇列 陣列實現

佇列是一種特殊的 線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 tail 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。以陣列實現的佇列結構,如果是普通佇列,頻繁增刪元素,會造成陣列記憶體空間的大量流失,所...

資料結構的C實現 迴圈佇列

迴圈佇列 include include define ok 1 define error 0 define overflow 2 define maxsize 10 迴圈佇列的最大元素數量 typedef char elemtype 元素型別 typedef struct queue queue ...

資料結構 迴圈佇列的簡單實現

採用順序儲存方式,儲存容量要比邏輯上的容量多乙個,以此方便判斷隊空還是隊滿。採用尾進頭出的模式,來達到先進先出的目的。操作簡單描述如下 隊尾指標是rear,隊頭是front,其中queuesize為迴圈佇列的最大長度。1.隊空條件 rear front。2.隊滿條件 rear 1 queuesize...