Berikut ini adalah sebuah program stack dalam Bahasa C dimana akan terdapat dua menu (Push & Pop) dimana user akan memilih menu tersebut. Jika user memilih menu Push maka user di minta untuk menginputkan elemen dari stack. Jika user memilih Pop maka elemen teratas akan di keluarkan.
#include <stdio.h>
#define MAXSTACK 5
typedef struct{
int item[MAXSTACK];
int count;
} stack;
stack tumpukan;
void init(stack *s) {
printf ("**INISIALISASI**");
s->count=0;
}
int isEmpty(stack *s) {
return (s->count == 0);
}
int isFull(stack *s) {
return (s->count == MAXSTACK);
}
void push(stack *s, int dataIn) {
printf("**PUSH DATA %d \n", dataIn);
if (isFull(s) ==1) {
printf("Stack Sudah Penuh !\n\n");
} else {
s->item[s->count]=dataIn;
(s->count)++;
printf("Berhasil masuk %d \n\n", dataIn);
}
}
void pop (stack *s) {
printf("**POP DATA\n");
if (isEmpty(s)) {
printf ("Stack Kosong !\n");
} else {
int dataOut;
int top=(s->count)-1;
dataOut= s->item[top];
s->item[top]=0;
--(s->count);
printf("\t POP : %d\n",dataOut);
}}
void printStack(stack *s) {
printf("Terdapat %d data : \n\t",s->count);
int i=0;
for (i=MAXSTACK-1;i>=0;i--) {
printf("%d | ", s->item[i]);
}
printf("\n\n");
}
int main () {
int pilihan;
do {
printf ("1.Push\n");
printf ("2.POP\n");
printf ("Pilihan: ");
scanf ("%d", &pilihan);
if (pilihan<1 or pilihan>3)
printf ("\nPilhan Salah, Silahkan Ulangi Lagi.");
if(pilihan<1 or pilihan>3);
switch (pilihan)
{
case 1:
int dataIn;
printf ("\nElemen Push : ");
scanf ("%d", &dataIn);
push (&tumpukan, dataIn);
printStack(&tumpukan);
break;
case 2:
pop (&tumpukan);
if(&tumpukan == 0){
printf("\nStack Kosong\n\n");
} else {
printStack (&tumpukan);
}
break;
default:
printf ("\nExit");
}
} while(pilihan != 3);
return 0; }
Salam Random!
#include <stdio.h>
#define MAXSTACK 5
typedef struct{
int item[MAXSTACK];
int count;
} stack;
stack tumpukan;
void init(stack *s) {
printf ("**INISIALISASI**");
s->count=0;
}
int isEmpty(stack *s) {
return (s->count == 0);
}
int isFull(stack *s) {
return (s->count == MAXSTACK);
}
void push(stack *s, int dataIn) {
printf("**PUSH DATA %d \n", dataIn);
if (isFull(s) ==1) {
printf("Stack Sudah Penuh !\n\n");
} else {
s->item[s->count]=dataIn;
(s->count)++;
printf("Berhasil masuk %d \n\n", dataIn);
}
}
void pop (stack *s) {
printf("**POP DATA\n");
if (isEmpty(s)) {
printf ("Stack Kosong !\n");
} else {
int dataOut;
int top=(s->count)-1;
dataOut= s->item[top];
s->item[top]=0;
--(s->count);
printf("\t POP : %d\n",dataOut);
}}
void printStack(stack *s) {
printf("Terdapat %d data : \n\t",s->count);
int i=0;
for (i=MAXSTACK-1;i>=0;i--) {
printf("%d | ", s->item[i]);
}
printf("\n\n");
}
int main () {
int pilihan;
do {
printf ("1.Push\n");
printf ("2.POP\n");
printf ("Pilihan: ");
scanf ("%d", &pilihan);
if (pilihan<1 or pilihan>3)
printf ("\nPilhan Salah, Silahkan Ulangi Lagi.");
if(pilihan<1 or pilihan>3);
switch (pilihan)
{
case 1:
int dataIn;
printf ("\nElemen Push : ");
scanf ("%d", &dataIn);
push (&tumpukan, dataIn);
printStack(&tumpukan);
break;
case 2:
pop (&tumpukan);
if(&tumpukan == 0){
printf("\nStack Kosong\n\n");
} else {
printStack (&tumpukan);
}
break;
default:
printf ("\nExit");
}
} while(pilihan != 3);
return 0; }
Salam Random!
artikelnya bermanfaat kak, ini sya jga punya artikel tentang Stack (tumpukan) dalam Bahasa C, smoga dpt saling melengkapi
BalasHapusStack (tumpukan) dalam Bahasa C
Kumpulan Materi Bahasa C, Lengkap dengan contoh program