Senin, 09 November 2015

TUGAS 4 (STACK)

1.   Jelaskan pengertian Stack?

Jawab :
Stack (tumpukan) adalah suatu struktur data yang terbentuk dari barisan hingga yang terurut dari satuan data. Pada stack, penambahan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir stack. Posisi ini disebut puncak atau top dari stack.

2.   Sebutkan dan jelaskan Operasi dasar Pada Stack ( Tumpukan ) beserta contohnya!
Jawab :
ü  Push => adalah operator yang berfungsi menambahkan elemen E ke Stack. Elemen E akan ditempatkan pada posisi TOP (S).

OPERASI PUSH

ü  Pop => adalah operator yang berfungsi mengeluarkan atau menghapus elemen TOP (S) dari dalm stack.

OPESASI POP


3.   Sebutkan fungsi push dan pop!
Jawab :
Ø  Fungsi Push
Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS=Top Of Stack)
Ø  Fungsi Pop
Untuk mengambil elemen teratas (data yang ditunjuk oleh TOS) dari stack.

4.   Buatlah contoh program stack!
Jawab :
#include "iostream"
#include "conio.h"
#define maksElemen 10//konstanta
using namespace std;
struct tumpukan
{
      short int isi[10];//isi
      int pos;//posisi dri stack
};
short int kosong(tumpukan &t)//periksa bahwa elemen stack kosong
{short int kos;
if(t.pos>0){
      kos=0;//blm kosong
      cout<<endl<<"belum kosong";
}
else
kos=1;//sudah kosong
return(kos);
}
void posisi(tumpukan t)//melihat posisi top stack
{
      if(kosong(t)!=1)//jika tdk kosong
      {
            cout<<endl<<"top sekarang pada indek = "<<t.pos;
            cout<<" dan elemennya adalah "<<t.isi[t.pos-1];
      }
}
void pop(tumpukan &t,short int &j)
{
      if(kosong(t)==1)//periksa stack
            cout<<endl<<"stack sudah kosong !";
      else
      {
            cout<<endl<<kosong(t)<<"stack blm kosong.";
            cout<<endl<<t.isi[t.pos-1]<<"  telah di pop!";
            t.pos=t.pos-1;
            j=t.pos;
      }
}
short int full(tumpukan &t)//periksa bhwa elemen stack sdah penuh
{short int penuh;
      if(t.pos<maksElemen)
            penuh=0;//blm penuh
      else
            penuh=1;//sdah penuh
      return (penuh);
}
void push(tumpukan &t, short int x, short int j)
{
      if(full(t)==1)//periksa stack
            cout<<endl<<"stack telah PENUH !";
      else{
            cout<<endl<<"stack blm PENUH !!";
            t.pos=j;
            t.isi[j-1]=x;
            cout<<endl<<t.isi[j-1]<<"  telah di PUSH!!";
      }
}
void main(){
      tumpukan t; short int n,i,x,komen;
      //n tdk lbih dri 10
      char pil;
      //memasukkan bil bulat
      t.pos=0; komen=0; i=1; t.isi[t.pos]=0;
      while(!(komen==1))
      {
            cout<<endl<<"1. PUSH dan 2.POP, mau pilih yang mana?";cin>>pil;
            switch(pil)
            {
            case'1': posisi(t);//lihat posisi top satack
                  cout<<endl<<"Bilangan ke-"<<i<<"="; cin>>x;
                  push(t,x,i);i++;break;//pemanggilan prosedur PUSH
           
            case'2': posisi(t);//lihat posisi top satack
                  pop(t,i);break;//pemanggilan prosedur pop
            }//end case
            cout<<endl<<"Tekan 1 untuk asphalt 8 :D..!!tekan: ";cin>>komen;
      }//end while
_getch();
}



5.   Sebutkan macam-macam stack!
Jawab :
·        Stack dengan Array


·        Double Stack dengan Array

Tidak ada komentar:

Posting Komentar