Laman

Selamat Datang Sahabat! Selamat ber-sharing Ilmu Komputer

Senin, 07 Mei 2012

Stack (Tumpukan)

    #include "vector"
    #include "stdio.h"
    #include "conio.h"
    #include "iostream.h"
    #define MAX_STACK 6

    typedef int itemType;
    typedef struct {
        int data[MAX_STACK];
       int top;
        } Stack;

    void init(Stack *tumpuk){
         tumpuk->top=-1;
        }

    int isempty(Stack *tumpuk){
         return (tumpuk->top==-1);
        }

    int isfull(Stack *tumpuk){
        return (tumpuk->top==MAX_STACK-1);
        }

    void Push(itemType x, Stack *tumpuk){
        if(isfull(tumpuk))
           printf("\n Data penuh\n");
           else{
           tumpuk->data[tumpuk->top]=x;
          ++(tumpuk->top);
          printf("\n Data %i telah ditambah\n",x);
           }
        }

    void Pop(Stack *tumpuk, itemType *x){
       if(isempty(tumpuk))
           printf("\n Data kosong\n");
       else{
          --(tumpuk->top);
          *x=tumpuk->data[tumpuk->top];
          tumpuk->data[tumpuk->top]=-1;
          printf("\n Data %i telah dihapus\n",*x);
           }
        }

    void tampil(Stack *tumpuk){
        if(isempty(tumpuk))
           printf("\n Data kosong\n");
       else
           for(int i=tumpuk->top-1;i>=-1;i--){
             cout<<"\n Data ke-"<data[i];
           }
       }

    void Clear(Stack *tumpuk){
        tumpuk->top=-1;
       printf("\n Semua data telah dihapus\n");
       }

    void main()
    {
        int pilih;
          Stack tumpukan;
           itemType data;
           init(&tumpukan);
       do{

           printf("\n\n  MENU:");
          printf("\n  1. [PUSH]  Menambah Data \n");
          printf("  2. [POP]   Menghapus Data \n");
         printf("  3. [PRINT] Tampilkan Data\n");
          printf("  4. [CLEAR] Hapus Semua Data\n");
          printf("  5. [EXIT]  Keluar dari Program\n");
           printf("\n  Masukkan pilihan: "); scanf("%i",&pilih);

          switch(pilih){
                case 1:    printf("\n Masukkan data: "); scanf("%i",&data);
                        Push(data,&tumpukan);
                        cout<<"\n\n  ";
                         system("PAUSE");
                      clrscr();
                        break;
            case 2:     Pop(&tumpukan,&data);
                        cout<<"\n\n  ";
                         system("PAUSE");
                      clrscr();
                        break;
            case 3:    tampil(&tumpukan);
                         cout<<"\n\n  ";
                         system("PAUSE");
                      clrscr();
                        break;
                case 4:     Clear(&tumpukan);
                        cout<<"\n\n  ";
                         system("PAUSE");
                      clrscr();
                        break;
                          }

            }while(pilih!=5);
        clrscr();

           getch();
        }


Masih ada yang salahkah?
Donload ini  http://www.mediafire.com/?03d19122k5tysh6 ( copas di Tab baru)


Tidak ada komentar:

Posting Komentar