Selamat Datang di Pratomo Wijoyo Berikan Komentar Anda untuk Kemajuan Blog ini

Minggu, 06 Februari 2011

Double Stack C

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 Double Stack C

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. . Double Stack C

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
Double Stack C

Artikel Saya lainnya :


1 comments:

abimayu mengatakan...

hm..

wah udah merambah ke dunia programer C nih..

sip sip.. :)

Posting Komentar