Contoh Program Queue dan Stack C++

Contoh Program Queue dan Stack C++

Berikut ini adalah contoh program dalam bahasa C++ untuk implementasi Queue dan Stack C++.

Implementasi Queue

C++
#include <iostream>
#include <queue>

int main() {
    std::queue<int> q;

    // Menambahkan elemen ke dalam Queue
    q.push(10);
    q.push(20);
    q.push(30);

    // Mengakses elemen pertama dalam Queue
    std::cout << "Elemen pertama dalam Queue: " << q.front() << std::endl;

    // Menghapus elemen pertama dalam Queue
    q.pop();

    // Mengakses elemen pertama setelah penghapusan
    std::cout << "Elemen pertama setelah penghapusan: " << q.front() << std::endl;

    // Mengecek apakah Queue kosong atau tidak
    if (q.empty()) {
        std::cout << "Queue kosong" << std::endl;
    } else {
        std::cout << "Queue tidak kosong" << std::endl;
    }

    // Menghitung jumlah elemen dalam Queue
    std::cout << "Jumlah elemen dalam Queue: " << q.size() << std::endl;

    return 0;
}
C++

Implementasi Stack

C++
#include <iostream>
#include <stack>

int main() {
    std::stack<int> s;

    // Menambahkan elemen ke dalam Stack
    s.push(10);
    s.push(20);
    s.push(30);

    // Mengakses elemen teratas dalam Stack
    std::cout << "Elemen teratas dalam Stack: " << s.top() << std::endl;

    // Menghapus elemen teratas dalam Stack
    s.pop();

    // Mengakses elemen teratas setelah penghapusan
    std::cout << "Elemen teratas setelah penghapusan: " << s.top() << std::endl;

    // Mengecek apakah Stack kosong atau tidak
    if (s.empty()) {
        std::cout << "Stack kosong" << std::endl;
    } else {
        std::cout << "Stack tidak kosong" << std::endl;
    }

    // Menghitung jumlah elemen dalam Stack
    std::cout << "Jumlah elemen dalam Stack: " << s.size() << std::endl;

    return 0;
}
C++

Contoh Program Queue dan Stack C++

C++
#include <iostream>
#include <conio.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 2
using namespace std;

struct antri
{
    int data;
};

struct identitas
{
    char nama[20];
    char no_rek[15];
    char transaksi;
    char service[30];
    int nominal;
};
main()
{


    int x=0,y=0,hapus;
    char pil;
    int pil1;
    identitas id[15];
    menu:

    cout<<"\t\t\t\t\t1.Queue\n";
    cout<<"\t\t\t\t\t2.Stack\n";
    cout<<"\n=============================\n";
    cout<<"\t\t\t\t\tInput Pilihan Anda:";
    cin>>pil1;
    switch(pil1)
    {


    case 1:
        menua:
        identitas id[15];
        antri ant[15];
        do{
            system("cls");
            cout<<"\n========================================\n";
            cout<<"\n\t\t\t\t\t ||  PROGRAM TELLER BANK  ||";
            cout<<"\n========================================\n";
            cout<<"1. Nasabah"<<endl;
            cout<<"2. Teller"<<endl;
            cout<<"3. Back Menu"<<endl;
            cout<<endl;
            cout<<"Masukkan pilihan Anda (1-3)\t= ";
            cin>>pil;


            if(pil!='1' && pil !='2' && pil !='3' )
            {
    //cout<<"Anda salah memasukkan pilihan\n\n";
    //system("PAUSE");
            }
            else
            {
                if(pil=='1')   //PUSH
                {
                    if(x==15 && y==15)
                    {
                        cout<<"ANTRIAN PENUH!!!";
                    }
                    cout<<endl;
                    system("cls");
                    cout<<"Nama Nasabah\t: ";
                    cin>>id[x].nama;
                    cout<<"Nomor Rekening\t: ";
                    cin>>id[x].no_rek;
                    ulang:
                    cout<<"Jenis Transaksi\t: \n";
                    cout<<"\t: A.Debet/Kredit\n";
                    cout<<"\t  B.Customer Service\n"<<"Pilih\t:";
                    cin>>id[x].transaksi;
                    if(id[x].transaksi=='a' || id[x].transaksi=='A' )
                    {
                        cout<<"Nominal :";
                        cin>>id[x].nominal;
                    }
                    else if(id[x].transaksi=='b' || id[x].transaksi=='B')
                    {
                     cout<<"Service:";
                     cin>>id[x].service;
                 }
                 else
                 {

                    cout<<"\n\nAnda Salah Memilih Jenis Transaksi\n\n";
                    cout<<"\n\n";
                    goto ulang;
                }

                cout<<endl;
                x++;
                system("cls");

                cout<<"Antrian saat ini\t:\n\n";
                for(int z=0;z<x;z++)
                {

                    cout<<"Nomor Antri\t: "<<z+1;
                    cout<<endl;
                    cout<<"Nama Nasabah\t: "<<id[z].nama<<endl;
                    cout<<"Nomor Rekening\t: "<<id[z].no_rek<<endl;
                    cout<<"Jenis Transaksi\t: ";
                    if(id[z].transaksi=='a' || id[z].transaksi=='A')
                    {
                        cout<<"Debet/Kredit\n";
                        cout<<"Nominal\t\t: "<<id[z].nominal<<endl;
                    }
                    else
                    {
                        cout<<"Customer Service\n";
                        cout<<"Service\t\t: "<<id[z].service<<endl;
                    }
                    cout<<endl;
                    cout<<endl<<endl;
                    cout<<"\n\n";
                    system("PAUSE");
                }
            }
            else
            {
                    if(pil=='2')     //POP
                    {
                        if(x==0)
                            cout<<"Antrian kosong";
                        else
                        {
                            for(int z=0;z<x;z++)
                                hapus=z;
                            for(int v=0;v<x;v++)
                                ant[v].data=ant[v+1].data;
                            ant[x].data=NULL;
                            x--;


                            system("cls");
                            cout<<"\nAntrian Dimulai Dari Urutan 1\n";
                            cout<<"\n\t\tData Nasabah \n\n";
                            cout<<"Nama Nasabah\t: "<<id[x].nama<<endl;
                            cout<<"Nomor Rekening\t: "<<id[x].no_rek<<endl;
                            cout<<"Jenis Transaksi\t: "<<id[x].transaksi<<endl;
                            cout<<"Nominal\t\t: "<<id[x].nominal<<endl;
                            cout<<"Service\t\t: "<<id[x].service<<endl;
                            cout<<endl;
                            {
                                int b;
                                for(b=0;b<x;b++)
                                    id[b]=id[b+1];
                                b--;
                            }
                        }

                        cout<<endl;
                        if(x==0)
                            cout<<"Antrian kosong";
                        else
                            cout<<"Nomor Antrian saat ini : ";
                        for(int z=0;z<x;z++)
                        {
                            cout<<" | ";
                            cout<<" "<<z+1;
                            cout<<" | ";
                        }
                        cout<<endl<<endl;
                        system("PAUSE");
                    }

                }
            }
        }
        while(pil!='3');
        goto menu;
        break;
    case 2:
        menub:
        char A[10];
        int tumpukkan,data;
        int cek;
        int z;
        tumpukkan=0;
        data=-1;
        A:
        cout<<"\n=================================\n";
        cout<<"\n\t\t\t\t\t ||  PROGRAM STACK ||";
        cout<<"\n=================================\n";
        cout<<"1. Tambah Data STACK\n";
        cout<<"2. Tampilan Data STACK\n";
        cout<<"3. Hapus Isi STACK\n";
        cout<<"4. Back PROGRAM\n";
        cout<<"Pilihan :" ;
        cin>>cek;
        switch (cek)
        {
        case 1:
            if(data==9)
            {

                cout<<"Data Penuh\n";
                goto A;
            }
            else
            {

                data++;
                cout<<"INPUT DATA :";
                cin>>A[data];
                goto A;
                system("cls");
            }
            break;

        case 2:
            if (tumpukkan>data)
            {

                cout<<"KOSONG\n";
                goto A;
            }
            else
            {

                cout<<"\n\nData Tersimpan:\n";
                for(z=0;z<=data;z++)
                {
                    cout<<A[z]<<" ";
                }
                cout<<"\n";
                goto A;
            }
            break;
        case  3:
            if(tumpukkan>data)
            {

                cout<<"Data Kosong\n";
                goto A;
            }
            else
            {

                for(int v=0;v<=data;v++)
                {
                    A[v]=A[v+1];
                }
                data--;
                cout<<"Data Berhasil Dihapus\n";
                goto A;
            }
            break;
        default :
            {

                cout<<"\n SELESAI\n";

            }
            break;
        }
    }
}
C++

Semoga contoh program di atas dapat membantu Anda dalam memahami implementasi Queue dan Stack dalam bahasa C++. Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya.