Popular Posts

Website Monitoring - InternetSupervision.com

Mengenal Stack Using Array

Stack atau dalam bahasa kita disebut tumpukan adalah suatu urutan elemen dimana elemen-elemen tersebut hanya dapat diambil atau ditambah melalui posisi teratas saja. Istilah kerennya LIFO (Last In, First Out), siapa yang masuk paling terakhir, dialah yang keluar paling awal :D Misalkan ada 20 tumpuk karung beras dalam gudang. Saat ingin memindahkan beras-beras itu ke Gudang lain, orang akan mengambil tumpukan paling atas terlebih dahulu, khan? (Jawab aja iya, dech ^^)
Stack memiliki 2 operasi dasar, yaitu:
  1. Operasi push, untuk menambahkan elemen (pada urutan teratas tentunya).
  2. Operasi pop, untuk mengambil elemen dan menghapusnya dari stack.
Berikut adalah contoh implementasi Stack dengan mengunakan Array dalam C:


#include<stdio.h>

#define MAX 50

 

typedef int data_Type;

typedef struct

{

 data_Type data[MAX];

 int TOS;

}STACK;

 

data_Type item[MAX], temp, x;

int pilih, i, n;

char lagi='y';

 

void inisialisasi(STACK *s)

{

 s->TOS = 0;

}

 

int full(STACK *s)

{

 return (s->TOS == n);

}

 

int empty(STACK *s)

{

 return (s->TOS == 0);

}

 

void push(data_Type x, STACK *s)

{

 if(full(s))

 puts("Stack is Full!");

 else

 {

 s->data[s->TOS] = x;

 (s->TOS)++;

 }

}

 

data_Type pop(STACK *s)

{

 data_Type tampung;

 if(empty(s))

 puts("Stack is Empty!");

 else

 {

 (s->TOS)--;

 tampung = s->data[s->TOS];

 }

 return tampung;

}

 

void tampil(STACK *s)

{

 for(i=s->TOS-1; i>=0; i--)

 {

 printf("%d  ", s->data[i]);

 }

 puts("");

}

 

main()

{

 STACK s;

 inisialisasi(&s);

 

 printf("Masukkan jumlah tumpukan : ");

 scanf("%d", &n);

 

 while((lagi == 'y') || (lagi == 'Y'))

 {

 puts("MENU");

 puts("1. Push");

 puts("2. Pop");

 printf("What do you want?: ");

 scanf("%d", &pilih);

 

 switch(pilih)

 {

 case 1:

 printf("Enter data: ");

 scanf("%d", &x);

 push(x, &s);

 break;

 case 2:

 pop(&s);

 break;

 default :

 puts("Invalid Input!");

 break;

 }

 tampil(&s);

 fflush(stdin);

 printf("Try again [y/t]? ");

 scanf("%c", &lagi);

 puts("");

 }

}
Bagikan :
+
Previous
Next Post »
0 Komentar untuk "Mengenal Stack Using Array"

 
Copyright © 2015 bos-it - All Rights Reserved
Template By Kunci Dunia
Back To Top