menunavigasihorisontal

Blognya Muhamad Ischaq

Translate

Minggu, 03 Januari 2016

program c tumpukan

#include <stdio.h>

#define MAX 5
int top, status;

/*PUSH FUNCTION*/
void push (int stack[], int item)
{   if (top == (MAX-1))
status = 0;
    else
    {   status = 1;
++top;
stack [top] = item;
    }
}

/*POP FUNCTION*/
int pop (int stack[])
{
    int ret;
    if (top == -1)
    {   ret = 0;
status = 0;
    }
    else
    {   status = 1;
ret = stack [top];
--top;
    }
return ret;
}

/*FUNCTION TO DISPLAY STACK*/
void display (int stack[])
{   int i;
    printf ("\nstacknya adalah: ");
    if (top == -1)
printf ("kosong");
    else
    {   for (i=top; i>=0; --i)
  printf ("\n--------\n| %d  |\n--------",stack[i]);
    }
    printf ("\n");
}

/*MAIN PROGRAM*/
void main()
{
    int stack [MAX], item;
    int ch;
   
    top = -1;

    do
    {  do
       {   printf ("\nprogram tumpukan (stack)");
  printf ("\n1.Push (masukkan) ke dalam stack");
  printf ("\n2.Pop  (hapus) dari stack");
  printf ("\n3.Keluar (hentikan ekskusi)");
  printf ("\nmasukkan pilihan anda: ");
  scanf  ("%d", &ch);
  if (ch<1 || ch>3)
      printf ("\npilihan salah, silahkan coba lagi");
}while (ch<1 || ch>3);
       switch (ch)
       {case 1:
printf ("\ntulis elemen yang akan di push: ");
scanf  ("%d", &item);
printf (" %d", item);
push (stack, item);
if (status)
{   printf ("\nsesudah push ");
   display (stack);
   if (top == (MAX-1))
printf ("\nstack sudah penuh");
}
else
   printf ("\nstack meluap");
break;
       case 2:
item = pop (stack);
if (status)
{    printf ("\nitem yang di pop adalah %d \nsesudah mem pop: ",item);
    display (stack);
}
else
    printf ("\nstack tidak ada");
break;
       default:
printf ("\n\neksekusi dihentikan\n\n");
       }
    }while (ch != 3);

}

Tidak ada komentar:

Posting Komentar