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

Tampilkan postingan dengan label Double Stack C. Tampilkan semua postingan
Tampilkan postingan dengan label Double Stack C. Tampilkan semua postingan

Minggu, 06 Februari 2011

Contoh Program Double Stack

Sekarang aku mo lanjutin postingan sebelumnya yaitu mengenai Double Stack, sebelumnya sudah kejelaskan sedikit tentang apa itu double stack, bisa dibaca di artikel sebelumnya double stack Contoh Program Double Stack

Sekarang tinggal memberikan Contoh Program Double Stack C.

Oke langsung aja, ini dia Contoh Program Double Stack nya



/*Contoh double stack*/

#include "stdio.h"
#include "conio.h"

#define MAX 50
#define true 1
#define false 0

char stack[MAX];
int top1, top2;

void init(void);
void push(char data, int nomorstack);
char pop(int nomorstack);
void clear(int nomorstack);
int full(void);
int empty(int nomorstack);
void baca();

main(){
char data;
int pilih, nomorstack;

init();

do{
clrscr();
printf("Contoh program double stack");
printf("\n1. Push");
printf("\n2. Pop");
printf("\n3. Clear");
printf("\n4. Baca");
printf("\n5. Selesai...");
printf("\nPilihan anda : \n");
scanf("%i",&pilih);

switch(pilih){
case 1: printf("Push\n");
printf("Masukkan datanya :\n"); scanf("%s",&data);
printf("Mau dimasukkan ke stack berapa ? 1 atau 2 ? :\n");

scanf("%i",&nomorstack);

push(data, nomorstack);
break;
case 2: printf("Pop\n");
printf("Masukkan nomor stack\n");
scanf("%i",&nomorstack);
data=pop(nomorstack);
printf("\nData yang dikeluarkan adalah %s", data);
break;
case 3: printf("Clear\n");
printf("Nomor Stack yang akan dikosongkan \n");
scanf("%i",&nomorstack);
clear(nomorstack);
break;
case 4: printf("Baca\n");
baca();
break;
case 5: printf("Exit");
break;
default: printf("Pilihan yang anda masukkan tidak ada");
break;
}
}while(pilih!=5);



getch();
}

//init
void init(){
top1=0;
top2=MAX+1;
}

//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();

}

//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;
}

//cek full

int full(void){

if(top1+1>=top2){
return true;
}

else return false;


}

//cek 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;
}



}

//clearing
void clear(int nomorstack){

switch(nomorstack){

case 1: top1=0;
break;
case 2: top2=MAX+1;
break;
default: printf("Nomor stack salah");
break;

}
}

void baca(){
int i;

printf("Baca isi stack pertama \n");

for(i=1; i<=top1; i++){
printf(" %c ",stack[i]);
printf("\n");

}

printf("Isi stack kedua\n");

for(i=MAX; i>=top2; i--){
printf(" %c ",stack[i]);
printf("\n");
}

getch();
}



Jika ada masalah dengan Contoh Program Double Stack silahkan tinggalkan komentar...

sekian dan terima kasih. Contoh Program Double Stack


Artikel Saya lainnya :



Read More..

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 :


Read More..