Rabu, 19 Juni 2013

STACK dengan ARRAY

stack atau tumpukan 
merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut. Tumpukan dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri tumpukan:
  • Elemen TOP (puncak) diketahui
  • penyisipan dan penghapusan elemen selalu dilakukan di TOP
  • LIFO
Pemanfaatan tumpukan:
  • Perhitungan ekspresi aritmatika (posfix)
  • algoritma backtraking (runut balik)
  • algoritma rekursif
Operasi tumpukan yang biasanya :
  1. Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke tumpukan
  2. Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen tumpukan
  3. Cek : IsEmpty dan IsFull
  4. Clear : Menghapus data dalam stack
  5. Tampil : Menyetak hasil data masukan dalam stack


sebagai lebih jelasnya ini coding saya mengenai stack dengan array
____________________________________________________________________________________

#include <iostream>
#include <conio.h>
using namespace std;

int top = 0; //array penanda awal sebagai top
char data [5]; //isi array
char x;

void push (){ //fungsi push
if (top==5){
cout<<"penuh!!";
}
else {
cout<<"\nMasukkan karakter : ";cin>>x;
top++;
data[top]=x;
}
}

void pop (){ //fungsi pop
if (top==0){
cout<<"\nData kosong !!!";
}
else {
x=data[top];
top--;
cout<<"\nData yang di hapus : "<<x;
}
}

void tampil(){
if (top==0){
cout<<"\nData kosong !!!";
}
else {
int i=0;
cout<<"\ndata masuk : \n";
for (i=top; i>0; i--)
cout<<"-->"<<data[i]<<endl;
}
}

void hapus (){ //fungsi menghapus list
top=0;
cout<<"\nList sudah terhapus!!";
}

void cek (){ //fungs mengecek list
if (top < 5){
cout<<"\nmasih ada kosong !!";
}
else if (top == 5){
cout<<"\npenuh !!";
}
}

main (){
int p;
do {
system ("cls");
cout<<"\t\t|****************|";
cout<<"\n\t\t|-----pugcrut----|";
cout<<"\n\t\t|________________|";
cout<<"\n\n\n\t\tSTACK dengan Array\n";
cout<<"\t________________________________\n\n";
cout<<"1.Push\n";
cout<<"2.Pop\n";
cout<<"3.Tampil\n";
cout<<"4.Hapus\n";
cout<<"5.Cek\n";
cout<<"6.Keluar\n";
cout<<"---------------------> " ; p=getche();
if (p=='1'){
push();
}
else if (p=='2'){
pop(); getch();
}
else if (p=='3'){
tampil(); getch();
}
else if (p=='4'){
hapus(); getch();
}
else if (p=='5'){
cek(); getch();
}
}
while(p!='6');
}





1 komentar: