Sunday, May 1, 2011

Contoh Program Stack Memakai Array

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

7 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