キューを実装するC++プログラム
キュー
挿入が一方の端(後部)で行われ、削除がもう一方の端(前部)から行われるFIFOとして実装されるキュー。入力した最初の要素が最初に削除されます。
キュー操作は-
EnQueue(int data)-リアエンドでの挿入
int DeQueue()-フロントエンドからの削除
これは、配列を使用してキューを実装するためのC++プログラムです。
アルゴリズム
Begin function Enqueue() to insert elements in queue: If queue is completely filled up then print “Overflow”. Otherwise insert element at rear. Update the value of rear End Begin function Dequeue() to delete elements from queue: If queue is completely empty then print “Underflow”. Otherwise insert element from the front. Update the value of rear. End
サンプルコード
#include <bits/stdc++.h>
using namespace std;
struct Q {
int f, r, capacity;
int* q;
Q(int c) {
f = r= 0;
capacity = c;
q = new int;
}
~Q() { delete[] q; }
void Enqueue(int d) {
if (capacity == r) { //check if queue is empty or not
printf("\nQueue is full\n");
return;
} else {
q[r] = d; //insert data
r++; //update rear
}
return;
}
void Dequeue() {
if (f == r) {
printf("\nQueue is empty\n");
return;
} else {
for (int i = 0; i < r - 1; i++) {
q[i] = q[i + 1];
}
r--; //update rear
}
return;
}
void Display() //display the queue {
int i;
if (f == r) {
printf("\nQueue is Empty\n");
return;
}
for (i = f; i < r; i++) {
printf(" %d <-- ", q[i]);
}
return;
}
void Front() {
if (f == r) {
printf("\nQueue is Empty\n");
return;
}
printf("\nFront Element is: %d", q[f]); //print front element of queue
return;
}
};
int main(void) {
Q qu(3);
qu.Display();
cout<<"after inserting elements"<<endl;
qu.Enqueue(10);
qu.Enqueue(20);
qu.Enqueue(30);
qu.Display();
qu.Dequeue();
qu.Dequeue();
printf("\n\nafter two node deletion\n\n");
qu.Display();
qu.Front();
return 0;
} 出力
Queue is Empty 10 <-- 20 <-- 30 <-- after two node deletion 30 <-- Front Element is: 30
-
AVLツリーを実装するためのC++プログラム
AVLツリーは自己平衡二分探索木であり、左右のサブツリーの高さの差がすべてのノードで複数になることはありません。 ツリーの回転は、AVLツリーの要素の順序を妨げることなく構造を変更する操作です。ツリー内で1つのノードを上に移動し、1つのノードを下に移動します。これは、ツリーの形状を変更したり、小さいサブツリーを下に移動したり、大きいサブツリーを上に移動したりして高さを低くしたりするために使用され、多くのツリー操作のパフォーマンスが向上します。回転の方向は、木のノードが移動する側に依存しますが、他の人は、どの子がルートの場所をとるかに依存すると言います。これは、AVLツリーを実装するためのC+
-
STLにSet_Symmetric_differenceを実装するC++プログラム
これは、set_symmetric_differenceを実装するためのC++プログラムです。 2つのセットの対称差は、一方のセットには存在するが、もう一方のセットには存在しない要素によって構築されます。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin Declare set vector v and iterator st. Initialize st = set_symmetric_difference (set1, set1 + n, set2, se