Beberapa waktu yang lalu saya pernah menulis tentang
Single Stack nah kali ini gak beda jauh dengan yang sebelumnya. Dalam
double stack kali ini kita masih menggunakan sebuah array, namun di dalam array tersebut akan ada
dua buah stack, makanya di kasih nama
Double Stack Jadi lebih mudahnya seperti ini,
stack yang satu akan selalu bergerak ke kanan, sedangkan satunya lagi akan bergerak kekiri, lalu dimana topnya,,,? jadi topnya adalah saat dimana dua buah stack itu bertabrakan, yakni ditengah-tengah, ups gak musti tengah deng. .
Sekarang kita bahas bagian2 apa aja yang musti ada di source
double stack,
Variable Global
#define MAX 50
#define true 1
#define false 0
char stack[MAX];
int top1, top2;
jadi besarnya array kita itu static, nggak bisa dinamis, jadi kalo butuh ruangan yang besar ya nilai MAX nya dibesarin aja
Fungsi Init
void init(){
top1=0;
top2=MAX+1;
}
Fungsi Full
int full(void){
if(top1+1>=top2){
return true;
}
else return false;
}
Fungsi Empty
int empty(int nomorstack){
switch(nomorstack){
case 1: if(top1==0) return true;
else return false;
break;
case 2: if(top2==MAX+1) return true;
else return false;
break;
default: printf("nomor stack salah");
break;
}
}
Fungsi Clear
void clear(int nomorstack){
switch(nomorstack){
case 1: top1=0;
break;
case 2: top2=MAX+1;
break;
default: printf("Nomor stack salah");
break;
}
}
Fungsi PUSH
void push(char data, int nomorstack){
if(full()!=true){
switch(nomorstack){
case 1: top1++;
stack[top1]=data;
break;
case 2: top2--;
stack[top2]=data;
break;
default: printf("\nNomor stack salah");
break;
}
}
else
printf("\nStack penuh");
getch();
}
fungsi POP
char pop(int nomorstack){
char data;
if(empty(nomorstack)!=true){
switch(nomorstack){
case 1: data=stack[top1];
top1--;
return data;
break;
case 2: data=stack[top2];
top2++;
return data;
break;
default: printf("\nNomor stack salah");
break;
}
}
else printf("\nStack masih kosong");
getch();
return 0;
}
ya fungsi umum di Double Stack kebanyakan itu-itu aja, kalo mo tambahin fungsi untuk Baca juga bisa. .
Oke sekian artikel Double Stack C tinggal bikin contoh Programnya saja
P.N.W
Artikel Saya lainnya :
Read More..