Mengisi (PUSH) stack sampai PENUH, dan
mengambil (POP) isi stack sampai KOSONG. Susun program untuk menyiapkan
array satu dimensi yang akan digunakan sebagai stack S sebanyak 10
elemen, bertipe integer. Kemudian inputkan data (nilai numerik) dan
simpan (PUSH) ke stack S.
Proses input dan PUSH selesai bila data yang diinput bernilai = 999, atau stack S penuh.
(nilai
999 dipakai sebagai end of data, tidak ikut dipush ke stack S).
setelah
itu dikeluarkan (POP) isi stack dan cetak ke layar satu persatu sampai
stack menjadi KOSONG.
Print Screen :
================= Berikut Source Code nya ================
#include<stdio.h>
#include<conio.h>
void main()
{
char A[10];
int dpn,blk;
int cek;
int z;
dpn=0;
blk=-1;
stack_haji:
clrscr();
fflush(stdin);
printf("1. Tambah Data STACK\n");
printf("2. Tampilan Data STACK\n");
printf("3. Hapus Isi STACK\n");
printf("4. KELUAR PROGRAM\n");
printf("Pilihan : ");
//cek=getche();
scanf("%d",&cek);
switch (cek)
{
case 1:
if(blk==9)
{
fflush(stdin);
printf("Data Penuh\n");
getchar();
goto stack_haji;
}
else
{
fflush(stdin);
blk++;
printf("\n INPUT DATA :");
//A[blk]=getche();
//gets(A[blk]);
scanf("%s",&A[blk]);
getchar();
goto stack_haji;
}
break;
case 3:
if(dpn>blk)
{
fflush(stdin);
printf("Data Kosong\n");
getchar();
goto stack_haji;
}
else
{
fflush(stdin);
for(int v=0;v<=blk;v++)
{
A[v]=A[v+1];
}
blk--;
printf("Penghapusan Berhasil\n");
getchar();
goto stack_haji;
}
break;
case 2:
if (dpn>blk)
{
fflush(stdin);
printf("KOSONG\n");
getchar();
goto stack_haji;
}
else
{
fflush(stdin);
printf("\n\nTersimpan %i Stack\n",(blk+1)-dpn);
for(z=0; z<=blk; z++)
{
printf(" %c \n",A[z]);
}
printf("\n\n");
getchar();
goto stack_haji;
}
break;
default :
{
clrscr();
printf("\n SELESAI\n");
}
break;
}
}
0 comments:
Post a Comment