Twitter Delicious Facebook Digg Stumbleupon Favorites More

Thursday, February 7, 2013

STAKC (TUMPUKAN) C++

Baiklah pada kesempatan sore kali ini saya akan sedikit membagi pengetahuan yang telah saya dapat mengenai struktur data .
bahasan kali ini mengenai STACK dalam bahasa pemrograman C++, untuk lebih mengetahui apa itu stack silahkan BACA_DISINI :

dibawah ini adalah contoh source code dari program STACK !!!!!
 
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX_STACK 5 //untuk menyimpan maksimun isi stack
struct
{  int top;
     char data[5][5];
  }


tumpuk;
void inisialisasi()
{ tumpuk.top = -1;}
int IsFull()
{  if(tumpuk.top == MAX_STACK-1) return 1;
    else return 0;
   }
int IsEmpty()
{     if(tumpuk.top == -1) return 1;
    else return 0;
   }
void Push(char d[5])
{  tumpuk.top++;
   strcpy(tumpuk.data[tumpuk.top],d);
   }
void Pop()
{     printf("\tData yang terambil = %s\n",tumpuk.data[tumpuk.top]);
      tumpuk.top--;
  }
void Clear()
{     tumpuk.top=-1;
    }
void TampilStack()
{     for(int i=tumpuk.top;i>=0;i--)
    { printf("\tData : %s\n",tumpuk.data[i]);
   }
}
int main()
{

printf("\n\t<<<<<<< SELAMAT DATANG DI PROGRAM STACK KAMI >>>>>>>\n");
printf("\t<<<<<<< ------------------------------------ >>>>>>>\n\n\n");
   int pil;
   inisialisasi();
   char dt[5];
   do{
             printf("\n\t     $$ Silahkan Pilih Perintah Di Bawah Ini $$\n");
            printf("\t\t\t    1. PUSH\n");
          printf("\t\t\t    2. POP\n");
          printf("\t\t\t    3. PRINT\n");
          printf("\t\t\t    4. HAPUS\n");
          printf("\t\t\t    5. KELUAR\n\n");
          printf("\tMasukkan Perintah! : ");
          scanf("%d",&pil);
          switch(pil)
          {
          case 1: if(IsFull() != 1) //untuk mengecek apakah stack sudah penuh
                       { printf("\tMasukkan Data = ");scanf("%s",dt);
                         Push(dt); } //untuk menambah item pada stack pada tumpukan paling atas
                        else printf("\n\t\tMaaf Stack penuh!\n"
                        "\tSilahkan Hapus Untuk Memasukkan Data Baru\n"
                        "\tMenu POP untuk mengambil STACK teratas !!!\n"
                        "\tMenu HAPUS untuk menghapus semua STACK !!!\n");
                        break;
           case 2: if(IsEmpty() != 1) //untuk mengecek apakah stack sudah kosong
                        Pop();//untuk mengambil item pada stack pada tumpukan paling atas
                        else
                        printf("\n\tData Masih kosong!\n");
                        break;
           case 3: if(IsEmpty() != 1)  //untuk mengecek apakah stack sudah kosong
                        TampilStack();//untuk menampilkan stack
                        else
                        printf("\n\tData Masih kosong!\n");
                        break;
           case 4: Clear(); //digunakan untuk mengosongkan stack
                        printf("\n\tSudah kosong!\n");
                        break;
            }
           getch();
        }
        while(pil != 5); //untuk keluar dari program
        printf("\n\tTerimakasih Telah Menggunakan Program Kami\n");
        printf("\n\tTekan ENTER Untuk Menutup Program !!!\n");
     getch();
}

No comments:

Post a Comment

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates