Professional Documents
Culture Documents
M.Fadhillah Hafidh - Program Double Stack
M.Fadhillah Hafidh - Program Double Stack
Source Code :
#include<iostream>
#define n 9
struct stack
int top1,top2,data[n];
}Tumpukan;
void init(){
Tumpukan.top1= -1;
Tumpukan.top2= n;
void push1(){
Tumpukan.top1++;
cin>>Tumpukan.data[Tumpukan.top1];
cout<<"Tumpukkan Penuh\n";
void pop1(){
Tumpukan.top1--;
else{
cout<<"Tumpukkan Kosong\n";
void push2(){
cout<<"Tumpukkan Penuh\n";
}else
{
Tumpukan.top2--;
cin>>Tumpukan.data[Tumpukan.top2];
void pop2(){
Tumpukan.top2++;
else{
cout<<"Tumpukkan Kosong\n";
void printStack() {
cout<<Tumpukan.data[i]<<" ";
}
cout<<Tumpukan.data[i]<<" ";
int main() {
int pilihan;
init();
do{
cout<<"\n ==========================";
printStack();
cout<<"\n ==========================\n"
<<endl;
<<"5. KELUAR\n"
<<"===========================\n"
cin>>pilihan;
switch (pilihan)
case 1:
push1();
break;
case 2:
pop1();
break;
case 3:
push2();
break;
case 4:
pop2();
break;
case 5:
return 0;
break;
default:
break;
}while(pilihan != 5);
void printStack() {
cout<<"\n Tumpukan : ";
if(Tumpukan.top2 - Tumpukan.top1 > 1){
for (int i = 0; i <= Tumpukan.top1; i++){
cout<<Tumpukan.data[i]<<" ";
}
}
if(Tumpukan.top2 - Tumpukan.top1 > 1){
for (int i = Tumpukan.top2; i <= n-1; i++){
cout<<Tumpukan.data[i]<<" ";
}
}
Output :