C++でのキューの配列実装
キューは、操作の順序がFIFO(先入れ先出し)である線形データ構造です。
配列は、同じデータ型の要素を含むデータ構造であり、連続したメモリ位置に格納されます。
キューでは、キューの両端で行われる挿入および削除操作。実装は、スタックと比較して少し複雑です。
キューの配列実装では、topとendの2つの変数を持つサイズnの配列キューを作成します。
現在、最初は配列は空です。つまり、先頭と末尾の両方が配列の0インデックスにあります。そして、要素がキューに追加されると、(挿入) 終了変数の値が増加します。 endの値は、nまで増加する可能性があります。つまり、配列の最大長です。
要素をキューから削除する場合(削除) 、一番上の変数の値が増加します。 topの値は、endの値まで上がる可能性があります。
キュー操作の実装
エンキュー −キューに要素を追加するための操作です。キューに要素を追加する前に、キューがいっぱいかどうかを確認します。終了を確認する条件。n未満の場合は、queue[end]に要素を保存できます。そして、endを1増やします。
オーバーフロー状態は、配列がいっぱいになったとき、つまりend==nのときです。
デキュー −キューの要素を削除する操作です。キューの要素を削除する前に、キューが空かどうかを確認します。キューが空かどうかをチェックする条件で、topとendの値がチェックされます。 top ==endの場合、配列は空です。
要素がある場合は、配列をデキューします。配列の左側にあるすべての要素を1つシフトします。
フロント −キューの最初の要素、つまりarray[top]を抽出します。この操作は、アレイが空でない場合にのみ実行できます。
表示 −この操作は、キューのすべての要素を表示します。つまり、キューをトラバースします。
アルゴリズム
ENQUEUE : Step 1 : if (end == n), print : “OVERFLOW”. Exit Step 2 : queue[end] = data and end++ DEQUEUE : Step 1 : If (top == 0), print : “empty Queue”. Exit Step 2 : shift all elements one position left. End-- ;
例
#include <bits/stdc++.h>
using namespace std;
struct Queue {
int top, end, n;
int* queue;
Queue(int c){
top = end = 0;
n = c;
queue = new int;
}
~Queue() { delete[] queue;
}
void Enqueue(int data){
if (n == end) {
printf("\nQueue is full\n");
return;
}
else {
queue[end] = data;
end++;
}
return;
}
void Dequeue(){
if (top == end) {
printf("\nQueue is empty\n");
return;
}
else {
for (int i = 0; i < end - 1; i++) {
queue[i] = queue[i + 1];
}
end--;
}
return;
}
void Display(){
int i;
if (top == end) {
printf("\nQueue is Empty\n");
return;
}
for (i = top; i < end; i++) {
printf(" %d <-- ", queue[i]);
}
return;
}
void Front(){
if (top == end) {
printf("\nQueue is Empty\n");
return;
}
printf("\nFront Element is: %d", queue[top]);
return;
}
};
int main(void){
Queue q(4);
q.Display();
q.Enqueue(12);
q.Enqueue(89);
q.Enqueue(65);
q.Enqueue(34);
q.Display();
q.Enqueue(92);
q.Display();
q.Dequeue();
q.Dequeue();
q.Display();
q.Front();
return 0;
} 出力
Queue is Empty 12 <-- 89 <-- 65 <-- 34 <-- Queue is full 12 <-- 89 <-- 65 <-- 34 <-- 65 <-- 34 <-- Front Element is: 65
-
JavaScriptでのキューの実装
以下は、JavaScriptでキューを実装するためのコードです。 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>
-
配列を使用してキューを実装するC++プログラム
キューは、要素のコレクションを含む抽象的なデータ構造です。キューはFIFOメカニズムを実装します。つまり、最初に挿入された要素も最初に削除されます。つまり、最近追加された要素がキューの最初に削除されます。 配列を使用してキューを実装するプログラムは次のとおりです- 例 #include <iostream> using namespace std; int queue[100], n = 100, front = - 1, rear = - 1; void Insert() { int val; if (rear == n -