Circular queue


PROGRAM CIRCULAR QUEUE




Hallo guys..
Kali ini gua mau sharing tentang circular queue. Gua juga masih belajar kalo ada kesalahan tolong dibantu ya hehe..

Oke circular queue adalah queue yang melingkar, jadi jika kalian input sampai max maka tail akan Kembali ke index -1, sedangkan jika kalian menghapus maka head akan ditambah 1.
Mungkin kalian masih bingung dari penjelasan diatas, oleh karena itu kita lngsung ke programnya.


#include <iostream>
using namespace std;
#define max 5
int head=-1,tail=-1;

struct angka
{
    int angka;
}data[5];

void enqueue()
{
    if(head==-1)
    {
        head=0;
        tail=0;
    }
    if(tail==max)
    {
        cout<<" queue penuh \n";
    }
    else if(tail+1!=head)
    {
        if(tail==max)
        {
            tail=-1;
        }else
        {
        tail++;
        cout<<" input : ";
        cin>>data[tail].angka;
        }
    }
    else
    {
         cout<<" queue penuh \n";
    }
}

void dequeue()
{
    if(tail==-1 || tail==head)
    {
        cout<<" queue kosong\n";
    }
    else
    {
        head++;
        cout<<"Data yang keluar : "<<data[head].angka<<endl;
        if(tail==head)
        {
            tail=-1;
            head=-1;
        }
        if(tail==max)
        {
            tail=-1;
        }
         else if(head==max)
        {
            head=-1;
        }
    }
}

void view()
{
    if(head<=tail)
    {
    for(int x=head+1;x<=tail;x++)
    {
        cout<<data[x].angka<<"|";
    }
    cout<<endl;
    }else
    {
           for(int x=head+1;x<=max;x++)
           {
                cout<<data[x].angka<<"|";
           }

              for(int x=0;x<=tail;x++)
              {
                   cout<<data[x].angka<<"|";
              }cout<<endl;
    }
}

main()
{
    int pilih;
    do{
    cout<<"1. input\n";
    cout<<"2. hapus\n";
    cout<<"3. view\n";
    cout<<"4. exit\n";
    cout<<"pilih:";
    cin>>pilih;
    switch(pilih)
    {
    case 1:
            enqueue();
            break;
    case 2:
          dequeue();
          break;
    case 3:
            view();
            break;
    }
    }while(pilih<4);
}

Comments

Popular posts from this blog

Program Perpustakaan Sederhana C++

Cara Membuat Pola Perkalian Menurun pada C++

Cara Membuat Pola Huruf Berurutan Dalam C++