Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Nama : M.

Fadhillah Hafidh Nim : 211011401076

Kelas : 03TPLM005 Matkul : Struktur Data

Source Code :

#include<iostream>

using namespace std;

#define n 9

struct stack

int top1,top2,data[n];

}Tumpukan;

void init(){

Tumpukan.top1= -1;

Tumpukan.top2= n;

void push1(){

if(Tumpukan.top2 - Tumpukan.top1 >1){

Tumpukan.top1++;

cout<<"Masukkan Data : ";

cin>>Tumpukan.data[Tumpukan.top1];

cout<<"Data "<<Tumpukan.data[Tumpukan.top1]<<" Masuk ke stack\n";


}else

cout<<"Tumpukkan Penuh\n";

void pop1(){

if(Tumpukan.top1 > -1){

cout<<"Data "<<Tumpukan.data[Tumpukan.top1]<<" Masuk di Hapus dari stack\n";

Tumpukan.top1--;

else{

cout<<"Tumpukkan Kosong\n";

void push2(){

if(Tumpukan.top2 - Tumpukan.top1 == 1){

cout<<"Tumpukkan Penuh\n";

}else

{
Tumpukan.top2--;

cout<<"Masukkan Data : ";

cin>>Tumpukan.data[Tumpukan.top2];

cout<<"Data "<<Tumpukan.data[Tumpukan.top2]<<" Masuk ke stack\n";

void pop2(){

if(Tumpukan.top2 < n){

cout<<"Data "<<Tumpukan.data[Tumpukan.top2]<<" Masuk di Hapus dari stack\n";

Tumpukan.top2++;

else{

cout<<"Tumpukkan Kosong\n";

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]<<" ";

int main() {

int pilihan;

init();

do{

cout<<"\n DOUBLE STACK "<<endl;

cout<<"\n ==========================";

printStack();

cout<<"\n ==========================\n"

<<endl;

cout<<"1. PUSH1 (INPUT STACK 1)\n"

<<"2. POP1 (DELETE STACK 1)\n"

<<"3. PUSH2 (INPUT STACK 2))\n"


<<"4. POP2 (DELETE STACK 2)\n"

<<"5. KELUAR\n"

<<"===========================\n"

<<"MASUKKAN PILIHAN : ";

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:

cout<<"PILIHAN TIDAK TERSEDIA";

break;

}while(pilihan != 5);

-TUGAS MEMBENARKAN PRINT STACK :

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 :

You might also like