Rabu, 03 Juni 2015

Stack

Di sini saya akan menjelaskan sebuah struktur data yang disebut dengan stack. Stack adalah sekumpulan data yang bertipe sama yang seolah-olah membentuk sebuah tumpukan yang dimana setiap penambahan data maupun pengambilan data selalu terjadi di elemen yang paling atas yaitu TOP, sehingga stack bersifat LIFO(Last In First Out).
Operasi-operasi yang bisa dilakukan pada stack adalah
·         Push : sebelum menambahkan data, program akan melakukan proses checking apakah stack tersebut sudah penuh atau tidak, yaitu fungsi IsFull(top==max_stack-1) , jika stack belum penuh maka stack akan di beri data, lalu menjadikan data yang teratas menjadi TOP
·          Pop : sebelum mengambil data, program akan melakukan proses checking apakah stack tersebut dalam keadaan kosong atau isi di sebut fungsi IsEmpty(top==-1), jika stack masih isi maka data pada stack akan di ambil dan data yang dibawahnya akan di jadikan top
·         Print : menampilkan seluruh data yang ada pada stack
Contoh coding C++ tentang stack
#include <conio>
#include <iostream>
#include <stdio>

//deklarasi  stack dengan struck dan array

struct STACK{
     int data[5];
   int atas;
};
//deklarasi v tumpuk dari struct
STACK tumpuk;

void main(){
     clrscr();
   int pilihan,baru,i;
   //inisialisasi awal
   tumpuk.atas=-1;
   do{
   clrscr();
   cout<<"Push Data"<<endl;
   cout<<"Pop Data"<<endl;
   cout<<"print data"<<endl;
   cout<<endl;
   cout<<"Pilihan : "; cin>>pilihan;
   switch(pilihan){
     case 1 : {
           if (tumpuk.atas==5-1){
         cout<<"Tumpukan Penuh";
         getch();
         }
         else{
         cout<<"Data yang akan di push :" ; cin>>baru;
         tumpuk.atas++;
         tumpuk.data[tumpuk.atas]=baru;
         }
         break;
      }
           case 2 : {
           if (tumpuk.atas==-1){
         cout<<"Tumpukan Kosong";
         getch();
         }
         else{
         cout<<"data yang akan di pop = "<<tumpuk.data[tumpuk.atas]<<endl;
         tumpuk.atas--;
         getch();
         }
      }
      case 3 : {
           if (tumpuk.atas==-1){
           cout<<"tumpukan kosong"<<endl;
           getch();
         }
         else {
           cout<<"Data = "<<endl;
            for(i=0;i<=tumpuk.atas;i++){
                cout<<tumpuk.data[i]<<" ";
            }
            getch();
         }
         break;
      }
      default:{
           cout<<"tidak ada dalam pilihan"<<endl;
      }
   }
   }
     while(pilihan>=1 && pilihan<=3);
   getch();
}


Source : Data Structures Using C++ by D.S.Malik
Contoh kode dari MataKuliah Praktikum Struktur Data.

0 komentar:

Posting Komentar