Jumat, 05 Juni 2015

Materi QUEUE c++

QUEUE (ANTRIAN)
 Definisi Queue
Queue berarti antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari-hari,
 Kelemahan
1) Pemborosan tempat (memori) ketika menggunakan jumlah data yang lebih sedikit dari alokasi memori
2) Tidak dapat menambahkan data melebihi maksimal ukuran array yang telah dideklarasikan
3) Waktu yang tidak efisiensi


Contoh Queue
misalnya saat Anda mengantri di loket untuk membeli tiket. Istilah yang cukup sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang dating terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue. Walaupun berbeda implementasi, struktur data queue setidaknya harus memiliki operasi-operasi sebagai berikut :
1) PUSH X (yaitu menambahkan data X ke dalam antrian)
2) POP (yaitu mengambil elemen paling depan dari antrian)

3) EMTPY (yaitu mengosongkan antrian)
Contoh Program Queue

#include "stdio.h"
#include "conio.h"
int main()
{
  int cek=0, data[20], x, hapus;
  char pil;
  do {

      printf("1. Tambah Antrian\n");
      printf("2. Hapus Antrian\n");
      printf("3. Lihat Antrian\n");
      printf("4. Keluar\n");
      printf("Silahkan masukkan pilihan anda...  ");
      pil=getche();


  if(pil!='1' && pil !='2' && pil !='3' && pil!='4' )
      printf("\n\nAnda salah mengetikkan inputan...\n");
      else
      {
    if(pil=='1')   //PUSH
    {
      if(cek==20)
        printf("\nAntrian Penuh\n\n");
        else
        {
          printf("\nMasukkan nilai-->");scanf("%i",&x);
          data[cek]=x;
          cek++;
        }}
        else
        {
          if(pil=='2')     //POP
          {
        if(cek==0)
          printf("\nAntrian kosong\n\n");
          else
          {
            hapus=data[0];
            for(int v=0;v<cek;v++)
            data[v]=data[v+1];
            data[cek-1]=NULL;
            cek--;
            printf("\nData dgn nilai=%i terhapus.",hapus);
          }
          getch();
          }
        else
        {
          if(pil=='3')   //CEK DATA
          {
            if(cek==0)
            printf("\nAntrian Kosong.\n\n");
            else
            {
              printf("\n");
              for(int z=0;z<cek;z++)
              {
            printf(" | ");
            printf("%i",data[z]);
            printf(" | ");
              }
            }
            getch();
            }
          }
        }
          }
    }while(pil!='4');
};

hasilnya :

Tidak ada komentar:

Posting Komentar