Queue dalam Struktur Data
TUGAS 7 Struktur Data
April 2026
Fakhrian Elanta
5025251019
Struktur Data D
Queue adalah suatu jenis struktur data yang menggunakan prinsip FIFO (First in first out). Sehingga elemen pertama masuk adalah elemen pertama yang keluar
Berikut merupakan contoh penerapan queue dalam kodem pemograman menggunakan array :
#include<bits/stdc++.h>
using namespace std;
#define MAX 1000
class Queue{
private:
int arr[MAX];
int front, rear;
public:
Queue(){
front = -1;
rear = -1;
}
bool isEmpty(){
return (front == -1);
}
bool isFull(){
return (rear == MAX -1);
}
void enqueue(int n){
if(isFull()){
cout << "Queue Overflow\n";
return;
}
if(isEmpty()){
front = 0;
}
arr[++rear] = n;
cout << "Elemen " << n << " masuk ke queue\n";
}
void dequeue(){
if(isEmpty()){
cout << "Queue Underflow\n";
}
cout << "Elemen " << arr[front] << " keluar dari queue\n";
if(front == rear){
front = rear = -1;
}
else {
front++;
}
}
void display(){
if(isEmpty()){
cout << "Queue kosong\n";
return;
}
cout << "Isi Queue: ";
for(int i = front; i <= rear; i++){
cout << arr[i] << " ";
}
cout << "\n";
}
};
int main(){
Queue q;
int n;
cout << "Masukkan jumlah perintah: ";
cin >> n;
while(n--){
string s;
cout << "Masukkan perintah (enqueue/dequeue/display): ";
cin >> s;
if(s == "enqueue"){
int m;
cin >> m;
q.enqueue(m);
}
else if(s == "dequeue"){
q.dequeue();
}
else if(s == "display"){
q.display();
}
}
return 0;
}
Output :
Penerapan Queue dengan linked list
#include <bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node* next;
};
class Queue{
private:
Node *front, *rear;
public:
Queue(){
front = rear = NULL;
}
bool isEmpty(){
return (front == NULL);
}
void enqueue(int n){
Node* newNode = new Node();
newNode->data = n;
newNode->next = NULL;
if(rear == NULL){
front = rear = newNode;
}
else {
rear->next = newNode;
rear = newNode;
}
cout << "Elemen " << n << " masuk ke queue\n";
}
void dequeue(){
if(isEmpty()){
cout << "Queue kosong\n";
return;
}
Node* temp = front;
cout << "Elemen " << temp->data << " keluar dari queue\n";
front = front->next;
if(front == NULL){
rear = NULL;
}
delete temp;
}
void display(){
if(isEmpty()){
cout << "Queue kosong\n";
return;
}
Node* temp = front;
cout << "Isi Queue: ";
while(temp != NULL){
cout << temp->data << " ";
temp = temp->next;
}
cout << "\n";
}
};
int main(){
Queue q;
int n;
cout << "Masukkan jumlah perintah: ";
cin >> n;
while(n--){
string s;
cout << "Masukkan perintah (enqueue/dequeue/display): ";
cin >> s;
if(s == "enqueue"){
int m;
cin >> m;
q.enqueue(m);
}
else if(s == "dequeue"){
q.dequeue();
}
else if(s == "display"){
q.display();
}
}
return 0;
}
Output :
Source Code : https://github.com/ealnt/Strukdat_Elan/tree/main/pertemuan7
Komentar
Posting Komentar