Stack C++

PENGERTIAN STACK

Secara sederhana diartikan dengan :

  • sebagai tumpukan dari benda
  • sekumpulan data yang seolah-olah diletakkan di atas data yang lain
  • koleksi dari objek-objek homogen

 

Ilustrasi Stack

Terdapat dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak yang lainnya. Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat, kelima, dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri dari N kotak.
Ilustrasi Stack – Cont
OPERASI PADA STACK

2 operasi dasar yang bisa dilaksanakan

pada sebuah stack, yaitu:

  • Operasi Push (menyisipkan data)‏  memasukkan data ke dalam stack
  • Operasi Pop (menghapus data)‏  menghapus elemen yang terletak pada posisi paling atas dari sebuah stack

 

Contoh program Stack

#include <cstdlib>
#include <string>
#include <iostream>

using namespace std;

int top=-1;
char stack[2];//asumsi max stack 100
char x;

void push()
{
     cout<<"masukkan satu karakter: ";
     cin>>x;
     top++;
     stack[top]=x;
     }

void pop()
{
     if(top<0)
     {
              cout<<"stack kosong"<<endl;
              return;
              }

     x=stack[top];
     top--;
     cout<<"karakter yang di 'POP' adalah "<<x<<endl;
     }

void cetak()
{
     if(top<0)
     {
              cout<<"stack kosong" <<endl;
              return ;
              }

int i=0;
for(i=top;i>=0;i--)
cout<<stack[i]<<endl;
}

int main(int argc, char *argv[])
{
    int input;
    cout<<"MASUKKAN PILIHAN: "<<endl;
    cout<<"\tpush=1"<<endl;
    cout<<"\tpop=2"<<endl;
    cout<<"\tcetak=3"<<endl;
    cout<<"\tquit=4"<<endl;
    while(true)
    {
               cout<<"\nMasukan pilihan: ";
               cin>>input;
               if(input==1)
               {push();}
               else if(input==2)
               {pop();}
               else if(input==3)
               {cetak();}
               else if(input==4)
               {break;}
               else
               {
                   cout<<"Perintah ' "<<input<<" tidak dikenal"<<endl;
                   }
                   }

    system("PAUSE");
    return EXIT_SUCCESS;
}

5 thoughts on “Stack C++

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s