#include “stdio.h”
void main()
{
int stack[100];
int top=-1;
int pilih, i;
do
{
printf(“MENU\n”);
printf(“1. PUSH\n2. POP\n3. VIEW\n4. EXIT\n”);
printf(“Pilih = “); scanf(“%d”, &pilih);
switch(pilih)
{
case 1://push
if (top > 100)
printf(“Stack penuh!\n”);
else
{ printf(“Data = “); scanf(“%d”, &stack[top+1]);
top++;
}
break;
case 2://pop
if (top < 0)
printf(“Stack kosong!\n”);
else
{
printf(“Data keluar = %d\n”, stack[top]);
top–;
}
break;
case 3://view
for(i=top; i>=0; i–)
printf(“%d “, stack[i]);
printf(“\n”);
break;
case 4:
printf(“Exit…\n”);
break;
}
}while (pilih!=4);
}

May 6, 2009 at 1:49 pm |
silahkan dicoba implementasi stack memakai linked list. boleh yg single maupun yg double linked list. prinsipnya, pastikan penambahan dan penghapusan simpul selalu terjadi pada satu tempat, boleh di depan maupun belakang. yg penting konsisten. pastikan pula link dlm linked list selalu connected. jika ada masalah harap segera diposting utk diskusi lebih lanjut. terima kasih
May 6, 2009 at 7:56 pm |
mas, itu pas pilih 1 (push), di line:
if (top > 100)
kayaknya keliru (setidaknya di java), soalnya index array dimulai dari 0, jadi ketika top = 100 dia masih bisa push, padahal udah ArrayOutOfBounds
btw udah saya convert versi java-nya di blog saya
thanks!!
May 6, 2009 at 9:50 pm |
yup. thats right. krg tanda sama dengannya. khilaf. thanks, mam
May 7, 2009 at 9:17 am |
loh mas
if(top >= 100)
juga masih salah karena top = 100 juga ArrayOutOfBounds
yg benar :
if(top >= 100 – 1)
karena index array mulai 0 sampai 99
thanks!!
May 22, 2009 at 11:36 pm |
pak gimana Contoh Program Stack Memakai Array yg di atas kok ada 2 error n uda sya cba untuk gnti dari:
top–; menjadi top–;
for(i=top; i>=0; i–) menjadi for(i=top; i>=0; i–-)
tapi kok g’ bsa dlam kondisi extrim conthnya aja umpama q gnti ukuran arraynx mnjadi: stack[3]dan sya gnti jga mnjadi if (top > 3)dan jka sya compiling dan out put untuk pilihan push q tambain trus smpai kondisi extrim yaitu 3 atau lebih dri 3 tpi stelah di view kok g’ mnunjukan penuh dan sya cba gnti dari
if (top = 3) menjadi if (top = 3)
tapi stelah dicompile kok lngsung mnunjukan stack penuh so tlong pnjelasannya..
May 25, 2009 at 2:41 pm |
kirim file .cpp nya ke email saya, zi. biar saya cek