普通佇列與迴圈佇列的概念與實現

2021-10-22 06:16:59 字數 2033 閱讀 4556

/*

** @author: 田源

* @date: 2021-03-12 19:26

* @description: 普通佇列實現**/

(()=>

// 入隊操作

push

(x)this

.arr[

this

.tail]

= x;

this

.tail +=1;

}// 出隊操作

pop(

)this

.head +=1;

}// 佇列是否為空

isempty()

// 佇列是否滿了

isfull()

// 獲取隊首元素

getfront()

// 佇列資料長度

getsize()

// 佇列擁有元素

getitem()

}}let queue =

newqueue(5

);console.

log(queue.

isempty()

);queue.

push(1

);queue.

push(2

);queue.

getitem()

; queue.

pop();

console.

log(queue.

getsize()

);queue.

getitem()

;})(

);

/*

** @author: 田源

* @date: 2021-03-12 19:26

* @description: 迴圈佇列實現**/

(()=>

// 入隊操作

push

(x)this

.arr[

this

.tail]

= x;

this

.tail +=1;

this

.count +=1;

if(this

.tail ==

this

.arr.length)

this

.tail =0;

}// 出隊操作

pop(

)this

.head +=1;

this

.count -=1;

if(this

.head ==

this

.arr.length)

this

.head =0;

}// 佇列是否為空

isempty()

// 佇列是否滿了

isfull()

// 獲取隊首元素

getfront()

// 佇列資料長度

getsize()

// 佇列擁有元素

getitem()

}}let queue =

newqueue(6

);console.

log(queue.

isempty()

);queue.

push(1

);queue.

push(2

);queue.

push(3

);queue.

push(4

);queue.

push(5

);queue.

getitem()

; console.

log(queue.

isfull()

);queue.

pop();

console.

log(queue.

getsize()

);queue.

getitem()

; console.

log(queue.head);}

)();

佇列的操作與實現 迴圈佇列

由於順序佇列有 假溢位 的缺點,所以在應用中,運用更多的是迴圈佇列來實現佇列的順序儲存。由於引用傳引數,所以原始檔需要.cpp字尾,即c 檔案儲存。迴圈佇列的判空條件為 q.rear q.fornt 迴圈佇列的判讀隊滿的條件是 q.rear 1 maxsize q.fornt 下面是佇列實現的儲存型...

迴圈順序佇列與鏈式佇列實現

佇列是一種先進先出的資料結構,分順序儲存結構和鏈式儲存結構兩種。順序儲存結構中廣泛使用的是迴圈佇列,也是佇列使用中最多的一種。下面將分別實現這兩種佇列的基本操作。includeusing namespace std const int maxsize 100 class queue int isem...

迴圈佇列與鏈佇列的簡單實現

為充分利用向量空間,克服 假溢位 現象的方法是 將向量空間想象為乙個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列 circular queue 通過上圖可以看出,如果使用順序表作為佇列的話,當處於d狀態則不能繼續插入新的隊尾元素,否則會因為陣列越界而導致程式 被破壞。當隊列為...