ADT Stack: Implementasi dengan Representasi Sekuensial (Array)
Berikut ini adalah *sebuah contoh* implementasi ADT Stack dengan representasi sekuensial (Array). Sekali lagi, ini hanyalah contoh, dan bukan satu-satunya implementasi ADT Stack. Jadi kalau anda memiliki suatu implementasi ADT Stack yang menurut anda lebih baik, silahkan digunakan.

Perhatikan bahwa implementasinya dibagi 2 file: StackTypes.h dan StackImplementation.c. File StackTypes.h mendefinisikan tipe data Stack dan ItemType yang dipakai oleh StackImplementation.c. Dua file ini, beserta dengan StackInterface.h membentuk suatu paket ADT Stack yang siap dipakai.

/* Nama File: "StackTypes.h" -> representasi Sekuensial */
#define MAXSTACKSIZE 100

typedef <masukkan tipe data di sini: char, float, dll.> ItemType;

typedef struct
{
   int Count;
   ItemType Items[MAXSTACKSIZE];
} Stack;

/* Nama File: "StackImplementation.c" -> representasi Sekuensial */
#include<stdio.h>
#include<stdlib.h>
#include"StackInterface.h"

void InitializeStack(Stack *S)
{
   S->Count=0;
}

int Empty(Stack *S)
{
   return(S->Count==0);
}

int Full(Stack *S)
{
   return(S->Count==MAXSTACKSIZE);
}

void Push(ItemType X, Stack *S)
{
   if(S->Count==MAXSTACKSIZE)
   {
      printf("Maaf, anda mencoba menambah item ke Stack yang penuh!\n");
   }
   else
   {
      S->Items[S->Count]=X;
      ++(S->Count);
   }
}

void Pop(Stack *S, ItemType *X)
{
   if(S->Count==0)
   {
      printf("Maaf, anda mencoba mengambil item dari Stack yang kosong!\n");
   }
   else
   {
      --(S->Count);
      *X=S->Items[S->Count];
   )
}

klik di sini untuk kembali ke halaman utama...