#include<stdio.h>
#include<iostream>
using namespace std;
struct Tumpukan{
int data[100];//maximum data 100
int St;
};
Tumpukan tumpuk;
void listAll();
void createStack();
void Push();
void Pull();
int main(){
cout << "Operasi Tumpukan: \n";
cout << "1. Create tumpukan \n";
cout << "2. Push tumpukan \n";
cout << "3. Pull tumpukan \n";
cout << "4. listAll tumpukan \n";
cout << "0. KELUAR \n\n";
int pil=-1;
while (pil !=0) {
cout << "Pilih salah satu: ";
cin >> pil;
//Jika pil bernilai 1 maka jalankan procedure createStack
if(pil==1) {
createStack();
} else if (pil==2){
Push();
} else if (pil==3) {
Pull();
} else if (pil==4) {
listAll();
} else {
cout << "\n Pilihan anda salah \n";
}
}
cout << "\n";
return 0;
}
void Pull() {
//1. Kalau tidak ada data-> St=0 tidak boleh Pull
//Pull
tumpuk.St--;
//Menampilkan Kembali
cout << "\n Data ke- " << tumpuk.St+1 << " sudah berhasil dihapus\n";
for (int i=0; i<tumpuk.St+1;i++);
}
void Push(){
//1. Kalau belum pernah create maka tidak boleh Push
//2. Push tidak boleh melebihi data[50] lihat struct
int baru;
cout << "\n Data yang akan ditambahkan : ";
cin >> baru;
tumpuk.St = tumpuk.St + 1;
tumpuk.data[tumpuk.St] = baru;
}
void createStack(){
//1. Kalau sudah pernah create tidak boleh create lagi
//Create Stack
tumpuk.St = -1;
//Is Empty --> F=0
if (tumpuk.St<0) {
//cout << "Kosong";
}
}
void listAll(){
//Menampilkan data
cout << "\n";
for (int i=0; i<=tumpuk.St; i++){
cout << "data ke-" << i << " : " << tumpuk.data[i] << "\n";
}
cout << "\n";
}