Lompat ke konten Lompat ke sidebar Lompat ke footer

Progam STACK dengan PUSH dan POP C/C++ (Struktur Data)

Pada Progam Berikutnya telah kita bahas Progam Stack Inputan C/C++ (Struktur Data). Kali ini akan kita bahas Progam stack dengan PUSH untuk mengisi data stack sampai penuh dan mengambil stack dengan POP sampai kosong.
Berikut ini implementasi soalnya;
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.

Script Progam STACK dengan PUSH dan POP C/C++ (Struktur Data)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAXSTACK 10


typedef int itemType;
typedef struct
{
float item[MAXSTACK];
int sugeng152;
} Stack;

void init(Stack *s)
{
s->sugeng152=0;
}

int kosong(Stack *s)
{
return (s->sugeng152==0);
}

int penuh(Stack *s)
{
return (s->sugeng152==MAXSTACK);
}

void isi(itemType y, Stack *s)
{ //isi
clrscr();
if(penuh(s))
{
clrscr();
printf("\n\tMaaf.! Stack penuh\n");
}
else
{
s->item[s->sugeng152]=y;
++(s->sugeng152);
}
}

void ambil(Stack *s, itemType *x)
{ //pop
if(kosong(s))
printf("\n\tMaaf, Stack kosong\n");
else
{
--(s->sugeng152);
*x=s->item[s->sugeng152];
s->item[s->sugeng152]=0;
printf("\n\tData %i berhasil diambil\n",*x);
}
}

void tampil(Stack *s)
{
int x=s->sugeng152;
if(kosong(s))
printf("\n\tMaaf.! Stack kosong\n");
else
{
printf("\n");
printf("Data yang dimasukkan berjumlah : %d\n",x);
printf("=======================================\n");
for(int i=s->sugeng152-1; i>=0; i--)
printf("\tData ke[%d]\t: %.0f\n",i,s->item[i]);
printf("\n=======================================\n");
}
}


void main()
{
int pil;
char lagi;
Stack tumpukan;
itemType data;
init(&tumpukan);

back:
clrscr();
printf("iswanto\n");
printf("2011 B - 1412110152\n");
printf("\t===============================\n");
printf("\t____________MENU_____________\n");
printf("\n\t1. Isi[PUSH]");
printf("\n\t2. Ambil[POP]");
printf("\n\t=============================");
printf("\n\n\tMasukkan pilihan: ");
scanf("%d",&pil);

switch(pil)
{
case 1:
ok:
clrscr();
tampil(&tumpukan);
printf("\n\tMasukkan data: ");
scanf("%i",&data);
if(data==999)
{
printf("\n\n\tProses Selesai..");
getch();
goto back;
}
else if(data<60)
{
tampil(&tumpukan);
printf("\n\n\tPress any key to continue..");
getch();
goto back;
}else
{
isi(data,&tumpukan);
tampil(&tumpukan);
printf ("\n\n\tIsi Data Lagi [Y/T]? : ");
ulang:
lagi = getchar();
if(lagi=='T' || lagi=='t')
{
goto back;
}
else if(lagi=='Y' || lagi=='y')
{
goto ok;
}
else if(lagi!='T' || lagi!='t'||lagi!='Y' || lagi!='y')
{
goto ulang;
}
}
break;

case 2:
ambil(&tumpukan,&data);
printf("\n\n\tPress any key to continue..");
getch();
goto back;
break;
default:
clrscr();
printf("\tPilihan Tidak tersedi.!");
printf("\n\n\tPress any key to continue..");
getch();
goto back;
break;
}


}

Output Progam STACK dengan PUSH dan POP C/C++ (Struktur Data)
 Pada Progam Berikutnya telah kita bahas  Progam STACK dengan PUSH dan POP  C/C++ (Struktur Data)

Posting Komentar untuk "Progam STACK dengan PUSH dan POP C/C++ (Struktur Data)"