Assalamualaikum Wr Wb.. Selamat datang di e-MasterCom. Blog yang ditujukan penulis sebagai arsip dalam perjalanan hidupnya.
Rabu, 15 Mei 2013

Stack bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakkan di atas data yang lain. Di dalam stack ini kita dapat menambahkan ataupun mengambil (menghapus) data melalui ujung yang sama yang disebut dengan ujung atas stack (top of stack). Sifat dari STACK adalah LIFO atau Last In First Out, dapat kita artikan yang terakhir masuk ialah yang pertama keluar.

Dalam penyajian stack, kita dapat menggunakan array, dengan anggapan bahwa banyaknya elemen maksimal dari suatu stack tidak melebihi batas maksimum banyaknya elemen array. Pada suatu ketika, ukuran stack akan sama dengan ukuran array, bila diteruskan penambahan datanya maka akan terjadi overflow. Oleh karena itu, perlu ditambahkan data untuk mencatat posisi ujung stack.
Contoh 1 :
Berikut merupakan ilustrasi stack:






      
 Listing Program STACK:

#include <iostream.h>
#include <conio.h>
#define max 10

struct Tumpukan{
int atas;
   int data[max];
   }T;

void awal(){
T.atas=-1;
   }

int kosong(){
if(T.atas==-1)
    return 1;
   else
    return 0;
      }

int penuh(){
if(T.atas==max-1)
    return 1;
   else
    return 0;
      }


void input(int data){
if(kosong()==1)
    {T.atas++;
       T.data[T.atas]=data;
       cout<<"Data "<<T.data[T.atas]<<" masuk ke stack";}
   else if(penuh()==0)
    {T.atas++;
       T.data[T.atas]=data;
       cout<<"Data "<<T.data[T.atas]<<" masuk ke stack";}

   else
       cout<<"Tumpukan penuh";
   }

void hapus(){
   if(kosong()==0){
      cout<<"Data teratas sudah terambil";
   T.atas--;
   }
   else
   cout<<"Data kosong";
   }

void tampil(){
if(kosong()==0)
   {for(int i=T.atas;i>=0;i--)
    {cout<<"\nTumpukan ke "<<i<<"="<<T.data[i];}
      }
   else
   cout<<"Tumpukan kosong";
   }

void bersih(){
T.atas=-1;

cout<<"Tumpukan kosong!";
}

void main(){
int pil,data;
awal();
do
{
clrscr();
cout<<"1. Input\n2. Hapus\n3. Tampil\n4. Bersihkan\n5. Keluar\nMasukkan pilihan :";
cin>>pil;
switch(pil)
{case 1:cout<<"Masukkan data = ";cin>>data;
     input(data);
           break;
    case 2:hapus();
     break;
    case 3:tampil();
     break;
    case 4:bersih();
     break;
    case 5: cout<<"Terimakasih, tekan enter untuk keluar";
    }
getch();     }
while(pil!=5);}

Screen Shot program sebagai berikut:








 

Contoh 2 

 #include<iostream>
#include<conio.h>
#include<string>

using namespace std;

const int maks=4;
struct Tumpukan {
    int isi[maks];
    int atas;
};
Tumpukan x;

void push(int y){
    x.atas++;
    x.isi[x.atas]=y;
}

void inisialisasi (){
    x.atas=-1;
}

void pop(){
    x.atas--;
}


void main()
{
    inisialisasi();

    int z,b;
    cin>>z>>b;

    push(z); push(b);
    cout<<x.isi[x.atas]<<" atas : "<<x.atas-1<<endl;
    cout<<x.isi[x.atas]<<" atas : "<<x.atas<<endl;

    pop();
    cout<<x.isi[x.atas]<<" atas : "<<x.atas<<endl;
    cout<<x.isi[x.atas]<<" atas : "<<x.atas+1<<endl;

    cin>>z;
    push(z);
    cout<<x.isi[x.atas]<<" atas : "<<x.atas<<endl;

    _getch();
   
}




{ 13 komentar... read them below or Comment }

  1. thanks, salam kenal Palembang.

    BalasHapus
  2. jirr ternyata dosen ane ngambil materi disini makasi y gan telah berkontribusi di dunia persulatan lol maksud ane per codingan

    BalasHapus
  3. Haa, sama2 gan. Semoga bermanfaat.

    BalasHapus
  4. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  5. thanks gan infonya
    arieflongor.blogspot.com

    BalasHapus
  6. terima kasih infonya,,
    ternyata Dosen saya juga ngambil dari sini,, :D

    BalasHapus
  7. thank's untuk materinya gan (y) :D

    BalasHapus
  8. bang ada yang punya link c++ 64 bit ??

    BalasHapus
  9. Balasan
    1. Itu mungkin krna anda pake code::blocks / dev c++

      Hapus
  10. Mungkin ada yang ingin tau lagi tentang stack Klik Disini Ismynr.xyz

    BalasHapus

Welcome to My Blog

Eko Nopyanto

Ini adalah blog pribadi, dimana saya akan membagikan apa yang saya pelajari, buku yang saya baca, dan orang yang saya temui . Saya harap kalian bisa bergabung dalam blog ini...Read More

Translate

Coment Box

- Copyright © Eko Nopyanto -Robotic Notes- Powered by Blogger - Designed by Eko Nopyanto -