Wednesday, January 23, 2013

Contoh Listing Queue atau Antrian pada C++


#
#
#
#
#define MAX 6

char *p[MAX], *pop(void);
int spos = 0;
int rpos = 0;
void insert(void), push(char *q), print(void), clear(void);

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. %s\n", t+1, p[t]);
}
void clear(void)
{
  char *p;



  if((p=pop())==NULL) {
     return;
  }
  printf("%s\n", p);
}
void push(char *q)
{
  if(spos==MAX) {
    printf("List Full\n");
    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("1. Masukan ");
    printf("2. Hasil ");
    printf("3. Hapus ");
    printf("4. Keluar: ");
    gets(s);
    *s = toupper(*s);
    switch(*s) {
      case '1':
        insert();
        break;
      case '2':
        print();
        break;
      case '3':
        clear();
        break;
      case '4':
        exit(0);
    }
  }
  return 0;
}


Silakan download listingnya Disini :

No comments:

Post a Comment