Saturday, January 7, 2017

Membagi sebuah Stack menjadi Stack A dan Stack B

Haii teman-teman masih semangat untuk coding kan ? Disini saya akan membahas tentang Stack. Dimana ada 1 Stack yang dibagi menjadi Stack A dan Stack B.

Apa itu Stack ?

Stack merupakan tumpukan dari benda atau data yang seolah-olah diletakkan diatas data yang lain dimana data yang pertama kali masuk akan terakhir.
Kita perumpamakan dalam sebuah tumpukan buku dimana sebuah buku yang ditumpuk secara urut yang terakhir maka akan menjadi prioritas utama untuk diambil, dengan ini disebutlah FILO (First In Last Out).

Inilah contoh penerapan Stack pada bahasa C++

#include <iostream>

using namespace std;

void push(int Stack[],int &top){
for(int i=1; i<=10; i++){
Stack[top]=i;
top++;
}
}

void bagi(int Stack[], int StackA[], int StackB[]){

int a=0;
int b=0;
for(int i=1; i<=10; i++){

if(i<=5){
StackB[b]=i;
b++;
}
else{
StackA[a]=i;
a++;
}
}
}

int pop(int StackA[],int &top){
int temp;
temp=StackA[top-1];
top--;
return temp;
}

void cetak(int Stack[],int top){
for(int i=top-1; i>=0; i--){
cout<<Stack[i]<<endl;
}
}
int main(int argc, char** argv) {
int top=0;
int Stack[10];
int StackA[5];
int StackB[5];
int topA=5;
int topB=5;
cout<<"Data Stack Array 1 - 10"<<endl;
push(Stack,top);
cetak(Stack,top);
cout<<endl<<"Stack A"<<endl;
bagi(Stack,StackA,StackB);
cetak(StackA,5);
cout<<endl<<"Stack B"<<endl;
bagi(Stack,StackA,StackB);
cetak(StackB,5);
cout<<"Stack A yang di pop : "<<pop(StackA,topA)<<endl;
cetak(StackA,4);
cout<<"Stack B yang di pop : "<<pop(StackB,topB)<<endl;
cetak(StackB,4);
return 0;
}


Program diatas dimana ada sebuah Stack kemudian kita membaginya dalam bentuk Stack A dan Stack B. Namun Stack ini tetap memperhatikan urutan dimana yang terakhir diinputkan maka yang pertama diambil. Misal : kita mempunyai angka 1 sampai 10 dengan urutan [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ] maka jika Stack tersebut dibagi dua menjadi Stack A [ 10, 9, 8, 7, 6 ] dan Stack B [ 5, 4, 3, 2, 1, ].

Ini lah dia hasil dari program diatas :


0 comments :

Post a Comment