// Program tumpukan untuk tugas
// struktur data Teknik Informatika
// Universitas Musamus Merauke
// 23 Januari 2014
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define maksimal 5
int puncak, status;
// Fungsi Dorong
void dorong (int tumpukan[], int elemen_tumpukan) {
if (puncak == (maksimal-1))
status = 0;
else {
status = 1;
++puncak;
tumpukan[puncak] = elemen_tumpukan;
}
}
// Fungsi Tarik
int tarik (int tumpukan[]) {
int ret;
if (puncak == -1) {
ret = 0;
status = 0;
}
else {
status = 1;
ret = tumpukan[puncak];
--puncak;
}
return ret;
}
// Fungsi untuk menampilkan tumpukan
void tampilkan (int tumpukan[]) {
int i;
printf ("Hasil tumpukan\n ");
if (puncak == -1)
printf ("\nKosong");
else {
for (i = puncak; i >= 0; --i)
printf ("\n=======\n|%3d |\n=======", tumpukan[i]);
}
printf("\n");
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int tumpukan [maksimal], elemen_tumpukan, pilihan;
puncak = -1;
do {
do {
printf ("\n<<<< Menu Utama >>>>\n");
printf ("\n1. Dorong kedalam tumpukan");
printf ("\n2. Tarik dari tumpukan");
printf ("\n3. Selesai\n");
printf ("\nMasukkan pilihan Anda: ");
scanf ("%d",&pilihan);
if (pilihan < 1 || pilihan > 3 )
printf ("\nPilihan yang tersedia adalah 1, 2, 3 ; Silahkan ulangi lagi");
}
while (pilihan < 1 || pilihan > 3);
switch (pilihan) {
case 1 :
printf ("\nMasukkan elemen yang akan didorong: ");
scanf("%d",&elemen_tumpukan);
printf("\n%4d\n", elemen_tumpukan);
dorong (tumpukan, elemen_tumpukan);
if (status) {
printf ("\nSetelah didorong ");
tampilkan (tumpukan);
if (puncak == (maksimal-1))
printf ("\nTumpukan sudah penuh\n");
} else
printf ("\nTumpukan sudah mencapai batas maksimal\n");
break;
case 2 :
elemen_tumpukan = tarik (tumpukan);
if (status) {
printf ("\nElemen tumpukan yang akan ditarik adalah %d. Setelah ditarik ");
tampilkan (tumpukan);
} else
printf ("\nTumpukan sudah mencapai batas minimal\n");
break;
default:
printf ("\nAkhir proses");
}
} while (pilihan != 3);
getch();
return 0;
}
Tidak ada komentar:
Posting Komentar