Saturday 4 January 2014

Contoh Program Stack Array Dengan C++

Kemarin kami sudah memberikan contoh tentang pemograman Queue Array, Dan kali ini kami akan memberikan contoh progran kebalikan dari Queue Array yaitu Stack Array. Maksud dari kebalikannya adalah jika pemograman Queue itu bersifat FIFO, maka pemograman Stack bersifat LIFO.

Berikut contoh program dari Stack Array :

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

#define MAX 5
#define true 1
#define false 0

char stack[MAX];
int top;

void init(void);
int full(void);
int empty(void);
char pop(void);
void clear(void);
void push(char info);
void baca(void);

void main()
{
char pilih,elm;
cout<<"demo operasi single stack"<<endl;
init();
do
{
cout<<"OPERASI SINGLE STACK :"<<endl;
cout<<"[1]PUSH"<<endl;
cout<<"[2]POP"<<endl;
cout<<"[3]clear"<<endl;
cout<<"[4]BACA"<<endl;
cout<<"[5]selesai"<<endl;
cout<<"pilihan:";cin>>pilih;
switch(pilih)
{
case '1':cout<<"PUSH-->";cin>>elm;
push(elm);
break;
case '2':elm=pop();
cout<<"pop"<<elm;
break;
case '3':clear();
break;
case '4':baca();
break;
case '5':break;
default:cout<<"salah pilih..."<<endl;
}
cout<<endl;
}
while(pilih!='5');
}

void init(void)
{
top=0;
}
void push(char info)
{
if(full()!=true)
{
top++;
stack[top]=info;
}
else
cout<<"stack overflow..."<<endl;
}
char pop(void)
{
char info;
if(empty()!=true)
{
info=stack[top];
top--;
return(info);
}
else
cout<<"stack underflow..."<<endl;
}
void clear(void)
{
top=0;
}
int full(void)
{
if(top==MAX)
return(true);
else
return(false);
}
int empty(void)
{
if(top==0)
return(true);
else
return(false);
}
void baca(void)
{ int i;
cout<<"isi stack:"<<endl;

if(top>0)
{
for(i=1;i<=top;i++)
cout<<stack[i];
}
else
cout<<"(kosong)";
cout<<endl;
getch();
}

Untuk alur program silahkan sahabat Pinter_Online pahabi sendiri, Mungkin hanya ini saja yang kami posting kali ini, apabila ada yang perlu ditanyakan silahkan komentar dibawah. Terimakasih.

No comments:

Post a Comment

Usahakan memberi komentar yang baik dan sopan. Jika ada yang perlu ditanyakan lebih lanjut, bisa kontak saya melalui Twitter di @roby_hamzah