介面:
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...