Applied Stack, Input, deleted dan exit

//lh3.googleusercontent.com/-K5UKWzgJhmU/AAAAAAAAAAI/AAAAAAAACdI/CN3nwiBZsGE/s512-c/photo.jpg
November 26, 2016




disini anda bisa menginput data, menghapus dan ext. silahkan mencoba ya semoga bermanfaat.






//header file
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
# include <string.h>
# define QSIZE 5
//deklarasi struct
typedef struct
{
      int count;
    int head,tail;
    char names[QSIZE][30];
}QUEUE; //nama struct
char *enqueue(char *);
char* dequeue();
//deklarasikan prototype fungsi
void tampil();
void inisialisasi();
//deklarasi Node
QUEUE *pq;
//fungsi main
int main()
{
      //deklarasi variabel
      int pil;
      char str[30];
      QUEUE q;
      pq=&q;
      inisialisasi(); //panggil fungsi inisialisasi
      do{
            system("cls"); //bersihkan layar
            printf("\tMENU PILIHAN : ");
            printf("\n\t______________");
            printf("\n[1] Input Data");
            printf("\n[2] Delete Data");
            printf("\n[3] Show data in queue");
            printf("\n[4] Exit\n");
            printf("\nPilihan anda : ");
            scanf("%d",&pil);
            switch(pil){
            case 1:
                  printf("\nSilahkan memasukkan sebuah kata : ");
                  fflush(stdin); //menghapus buffer data
                  gets(str);
                 puts(enqueue(str)); /*Mencetak string hasil penambahan data yang dilakukan oleh fungsi enqueue()*/
                  break;
            case 2:
                 puts(dequeue()); /*Mencetak string terhapus yang dilakukan oleh fungsi enqueue()*/
                  break;
            case 3:
                  tampil(); //panggil fungsi tampil()
                  break;
            case 4: exit(0);
            default: printf("\nMasukkan anda salah!!");
            }
            printf("\nPress Any Key to continue...");
            fflush(stdin); //membersihkan buffer data
            while(!kbhit());
      }
      while(1); //perulanagan dijalankan terus
    //return 0;
}
//fungsi untuk inisialisasi awal
void inisialisasi()
{
      pq->head = pq->tail = pq->count= 0;
}
//fungsi untuk menambah data string dalam queue
char* enqueue(char *p)
{
      if(pq->count==QSIZE)
            return "\n\n\t\t Error: Antrian penuh";
      pq->tail= (pq->tail)%QSIZE;
      strcpy(pq->names[(pq->tail)++],p);
      pq->count++;
      return "Data telah berhasil dimasukkan";
}
//fungsi untuk menghapus data string dalam queue
char* dequeue()
{
      if(pq->count==0)
            return "\n\n\t\t Error: Antrian kosong";
      pq->head= (pq->head)%QSIZE;
      pq->count--;
      printf("\nData yang telah dihapus adalah\n:");
      return pq->names[(pq->head)++];
}
//fungsi untuk menampilkan data yang berada dalam antrian
void tampil()
{
      int i=pq->head;
      int x=0;
      if(pq->count==0)
            printf("Antrian kosong\n");
      else
      {
            while(x<pq->count)
            {
                  if(i==QSIZE)
                        i%=QSIZE;
                  printf(":%s\n",pq->names[i]);
                  i++;
                  x++;
            }
      }
}


Related Post

SUBSCRIBE TO OUR NEWSLETTER

closed