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

Postingan populer dari blog ini

overviewc++

Stack