Program Quence ( input antrian ) C++ | putra PANTURA

Posted on
Queue atau antrian merupakan suatu kumpulan data yang penambahan elemennya hanya bisa dilakukan pada suatu ujung atau rear, dan penghapusan atau pengambilan elemen dilakukan lewat ujung yang lain (front).
Contoh program Queue:
Memasukkan, menghapus, serta mencetak kembali data yang dimasukkan:

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#define MAX 50

char *p[MAX], *pop(void);
int spos = 0;
int rpos = 0;
void insert(void), push(char *q), print(void), clear(void);
//**ANDHIKA NUR AFIAN**//
void insert(void)
{
  char s[50], *p;
  do {
     printf(“spos %d: “, spos+1);
    gets(s);
    if(*s==0) {
       break;
    }
    p = (char *) malloc(strlen(s)+1);
     if(!p) {
      printf(“Out of memory.n”);
      return;
    }
    strcpy(p, s);
     if(*s) {
       push(p);
    }
  } while(*s);
}
void print(void)
{
  int t;
  for(t=rpos; t < spos; ++t)
    printf(“%d. %sn”, t+1, p[t]);
}
void clear(void)
{
  char *p;

  if((p=pop())==NULL) {
     return;
  }
  printf(“%sn”, p);
}
void push(char *q)
{
  if(spos==MAX) {
     printf(“List Fulln”);
    return;
  }
  p[spos] = q;
  spos++;
}
char *pop(void)
{
  if(rpos==spos) {
    printf(“No more.n”);
     return NULL;
  }
  rpos++;
  return p[rpos-1];
}
int main(void)
{
  char s[50];
  register int t;
  for(t=0; t < MAX; ++t) {
      p[t] = NULL;
  }
  while(1) {
    printf(“Insert(I), Print(P), Clear(C), Quit(Q): “);
     gets(s);
    *s = toupper(*s);
     switch(*s) {
      case ‘I’:
          insert();
        break;
        case ‘P’:
        print();
          break;
        case ‘C’:
          clear();
          break;
        case ‘Q’:
          exit(0);
     }
  }
  return 0;
}//**ANDHIKA NUR AFIAN**//

Gravatar Image
Suka jalan-jalan, naik sepeda, bermain code-code asal tidak suka mengkode cinta. Hubungi email : andhika.na@gmail.com jika anda butuh website untuk personal maupun bisnis.

Leave a Reply

Your email address will not be published. Required fields are marked *