•ISEMPTY
Untuk memeriksa
apakah
stack kosong, Dengan
cara
memeriksa
TOP of STACK. Jika
TOP masih
= -1 maka
berarti
stack masih
kosong
•ISFULL
Untuk memeriksa
apakah
stack sudah penuh, Dengan
cara
memeriksa
TOP of Stack.
Jika
TOP of STACK = MAX_STACK-1 maka FULL (Penuh)
Jika
TOP of STACK < MAX_STACK-1 maka belum penuh
•PUSH
Untuk menambahkan
item pada posisi
paling atas
(TOP), Menambah
satu
(increment) nilai
TOP of STACK setiap
ada
penambahan
elemen
stack selama stack masih belum penuh kemudian Isikan nilai baru ke stack berdasarkan indeks TOP of
STACK setelah
ditambah
satu
(diincrement)
•POP
Untuk menghapus
item paling atas
(TOP)dengan cara:
- Ambil dahulu nilai elemen teratas stack dengan mengakses TOP of STACK.
- Tampilkan nilai yang akan diambil.
- Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
•CLEAR
Untuk mengosongkan stack, membuat
stack hampa
sehingga
Top pada
Stack berada
kembali
di posisi
Top = -1
#include
#include
#include
void main()
{
int stack[10];
int top=-1;
int pilih, i;
do
{
gotoxy(25,2);cout<<"========MENU PILIHAN========"<gotoxy(25,4);cout<<"============================"<gotoxy(30,6);cout<<" 1. PUSH "<gotoxy(30,7);cout<<" 2. POP "<gotoxy(30,8);cout<<" 3. VIEW "<gotoxy(30,9);cout<<" 4. EXIT "<gotoxy(25,11);cout<<"============================"<gotoxy(25,12);printf("Pilih = "); scanf("%d", &pilih);
switch(pilih)
{
case 1://push
clrscr();
if (top > 10)
printf("Stack penuh!\n");
else
{ printf("Data = "); scanf("%d", &stack[top+1]);
top++;
}
break;
case 2://pop
clrscr();
if (top < 0)
printf("Stack kosong!\n");
else
{
printf("Data keluar = %d\n", stack[top]);
top--;
}
break;
case 3://view
cout<<"\n\ndata yang ada pada STACK : \n";
{
for(i=top; i>=0; i--)
printf("%d ", stack[i]);
printf("\n");
}
break;
case 4:
printf("Exit…\n");
break;
}
}while (pilih!=4);
}
void main()
{
int stack[10];
int top=-1;
int pilih, i;
do
{
gotoxy(25,2);cout<<"========MENU PILIHAN========"<
switch(pilih)
{
case 1://push
clrscr();
if (top > 10)
printf("Stack penuh!\n");
else
{ printf("Data = "); scanf("%d", &stack[top+1]);
top++;
}
break;
case 2://pop
clrscr();
if (top < 0)
printf("Stack kosong!\n");
else
{
printf("Data keluar = %d\n", stack[top]);
top--;
}
break;
case 3://view
cout<<"\n\ndata yang ada pada STACK : \n";
{
for(i=top; i>=0; i--)
printf("%d ", stack[i]);
printf("\n");
}
break;
case 4:
printf("Exit…\n");
break;
}
}while (pilih!=4);
}