#include "vector"
#include "stdio.h"
#include "conio.h"
#include "iostream.h"
#define MAX_STACK 6
typedef int itemType;
typedef struct {
int data[MAX_STACK];
int top;
} Stack;
void init(Stack *tumpuk){
tumpuk->top=-1;
}
int isempty(Stack *tumpuk){
return (tumpuk->top==-1);
}
int isfull(Stack *tumpuk){
return (tumpuk->top==MAX_STACK-1);
}
void Push(itemType x, Stack *tumpuk){
if(isfull(tumpuk))
printf("\n Data penuh\n");
else{
tumpuk->data[tumpuk->top]=x;
++(tumpuk->top);
printf("\n Data %i telah ditambah\n",x);
}
}
void Pop(Stack *tumpuk, itemType *x){
if(isempty(tumpuk))
printf("\n Data kosong\n");
else{
--(tumpuk->top);
*x=tumpuk->data[tumpuk->top];
tumpuk->data[tumpuk->top]=-1;
printf("\n Data %i telah dihapus\n",*x);
}
}
void tampil(Stack *tumpuk){
if(isempty(tumpuk))
printf("\n Data kosong\n");
else
for(int i=tumpuk->top-1;i>=-1;i--){
cout<<"\n Data ke-"<data[i];
}
}
void Clear(Stack *tumpuk){
tumpuk->top=-1;
printf("\n Semua data telah dihapus\n");
}
void main()
{
int pilih;
Stack tumpukan;
itemType data;
init(&tumpukan);
do{
printf("\n\n MENU:");
printf("\n 1. [PUSH] Menambah Data \n");
printf(" 2. [POP] Menghapus Data \n");
printf(" 3. [PRINT] Tampilkan Data\n");
printf(" 4. [CLEAR] Hapus Semua Data\n");
printf(" 5. [EXIT] Keluar dari Program\n");
printf("\n Masukkan pilihan: "); scanf("%i",&pilih);
switch(pilih){
case 1: printf("\n Masukkan data: "); scanf("%i",&data);
Push(data,&tumpukan);
cout<<"\n\n ";
system("PAUSE");
clrscr();
break;
case 2: Pop(&tumpukan,&data);
cout<<"\n\n ";
system("PAUSE");
clrscr();
break;
case 3: tampil(&tumpukan);
cout<<"\n\n ";
system("PAUSE");
clrscr();
break;
case 4: Clear(&tumpukan);
cout<<"\n\n ";
system("PAUSE");
clrscr();
break;
}
}while(pilih!=5);
clrscr();
getch();
}
Masih ada yang salahkah?
Donload ini http://www.mediafire.com/?03d19122k5tysh6 ( copas di Tab baru)
Tidak ada komentar:
Posting Komentar