document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<process.h>
  4. #define MAX 10
  5.  
  6. typedef struct stack
  7. {
  8.  int data[MAX];
  9.  int top;
  10. }stack;
  11. //fungsi kosong untuk mengecek apakah stack kosong atau tidak
  12. int kosong(stack *s)
  13. {
  14.  if(s->top==-1)
  15.       return(1);
  16.  return(0);
  17. }
  18. //fungsi penuh untuk mengecek apakan stack penuh atau tidak
  19. int penuh(stack *s)
  20. {
  21.  if(s->top==MAX-1)
  22.      return(1);
  23.  return(0);
  24. }
  25. //fungsi push untuk memasukkan data ke dalam stack
  26. void push(stack *s,int x)
  27. {
  28.  s->top=s->top+1;// increment stack untuk menaikkan nilai TOS
  29.  s->data[s->top]=x; //pengisian niai untuk variabel data kedalam variabel x
  30. }
  31. //fungsi pop untuk mengambil data pada stack
  32. int pop(stack *s)
  33. {
  34.  int x;
  35.  x=s->data[s->top];
  36.  s->top=s->top-1;// decrement stack untuk mengambil data pada stack
  37.  return(x);
  38. }
  39. //------------------------
  40. void main()
  41. {
  42.  stack s;
  43.  int num;
  44.  
  45.  s.top=-1;// inisialisasi agar nilai TOS menjadi 0
  46.      printf("\\nEnter decimal number:");
  47.      scanf("%d",&num);
  48.  
  49.      while((num!=0))
  50.      {
  51.        if(!penuh(&s))
  52.           {
  53.           push(&s,num%8);// mengembalikkan nilai data menjadi modulus 8
  54.           num=num/8;
  55.           }
  56.        else
  57.           {
  58.           printf("\\nStack overflow");
  59.           exit(0);
  60.           }
  61.      }
  62.  
  63.     printf("");
  64.     while(!kosong(&s))
  65.        {
  66.        num=pop(&s);
  67.        printf("%d",num);
  68.        }
  69. }
');