Contoh Program Stack Memakai Array dalam Bahasa C

#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);
}

Artikel terkait:
Stack Array Java
Stack Linked List Java

15 comments:

  1. 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 :)

    ReplyDelete
  2. 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 :D

    thanks!!

    ReplyDelete
  3. yup. thats right. krg tanda sama dengannya. khilaf. thanks, mam :)

    ReplyDelete
  4. 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!!

    ReplyDelete
  5. 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..

    ReplyDelete
  6. kirim file .cpp nya ke email saya, zi. biar saya cek :)

    ReplyDelete
  7. sama2, mas arul :)

    ReplyDelete
  8. ga ngerti cara input datanya?? berhasil di run tapi maksud data disana apa??

    ReplyDelete
  9. seharusnya muncul menu pilihan. input data, pilih menu 1 dan enter. masukkan data baru :)

    ReplyDelete
  10. udah, sob. maksih, yah . saya mau pelajari dulu progamnya, btw ada visual dari stcak ga?? sealin c++?

    ReplyDelete
  11. klo yg dimaksud visual itu adalah gambar/ animasi ya sementara ini belum ada. lebih ribet coding-nya. maaf :)

    ReplyDelete
  12. aku mah salah di void main aja... knp yaa??

    ReplyDelete
  13. jika berkenan, file source code-nya bisa di-email ke bluejundi@yahoo.com ya. spy mudah ngeceknya. trims :)

    ReplyDelete