Pengertian Stack
Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO. Dengan demikian, elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil. Dalam proses komputasi, untuk meletakkan sebuah elemen pada bagian atas dari stack, maka kita melakukan push. Dan untuk memindahkan dari tempat yang atas tersebut, kita melakukan pop.
Stack adalah sebuah kumpulan data dimana data yang diletakkan di atas data yang lain. Dengan demikian stack adalah struktur data yang menggunakan konsep LIFO. Dengan demikian, elemen terakhir yang disimpan dalam stack menjadi elemen pertama yang diambil. Dalam proses komputasi, untuk meletakkan sebuah elemen pada bagian atas dari stack, maka kita melakukan push. Dan untuk memindahkan dari tempat yang atas tersebut, kita melakukan pop.
Pada saat ukuran stack, kalau kita teruskan menambah data lagi, akan terjadi overflow. Dengan demikian perlu data tambahan untuk mencatat posisi ujung stack. Dengan kebutuhan seperti ini, kita dapat menyajikan stack dengan menggunakan tipe data struktur (struct) yang terdiri dari dua field. Field pertama bertipe array untuk menyimpan elemen stack, medan kedua bertipe integer untuk mencatat posisi ujung stack.
Contoh program C++:
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define maxstack 200
struct STACK //membuat jenis data abstrak 'STACK'
{
int top;
char data[maxstack];
};
char dta[maxstack];
struct STACK stackbaru;
void inisialisasi()
{
stackbaru.top = -1;
}
bool isfull() //menanyakan penuhkah?
{
if (stackbaru.top == maxstack-1) return true;
else return false;
}
bool isempty() //menanyakan kosongkah?
{
if (stackbaru.top == -1) return true;
else return false;
}
void push(char dta) //mengisi stack (menyiapkan data)
{
if (isfull() == false)
{
stackbaru.top++;
stackbaru.data[stackbaru.top]=dta;
}
else
{
puts ("\nMaaf Stack penuh");
}
}
void pop() //mengambil isi stack
{
while (isempty() == false)
{
cout<<stackbaru.data[stackbaru.top];
stackbaru.top--;
}
}
void print() //mencetak stack
{
cout<<" ";
for (int i=0; i<=stackbaru.top; i++)
{
cout<<stackbaru.data[i];
}
}
void clear()
{
stackbaru.top = -1;
}
void main()
{
char kata[200];
printf("--- PROGRAM PEMBALIK KALIMAT --- \n\n");
printf("Masukkan kalimat yang Anda inginkan: \n");
gets(kata);
for(int i=0; kata[i]; i++)
push(kata[i]);
printf("------------------------------------ \n\n");
print();
cout<<" menjadi ";
pop();
cout<<"\n";
getche();
}
Buku Struktur Data (Algoritma & Struktur Data 2) dengan C, C++ Ed.5
www.slideshare.com
Tidak ada komentar:
Posting Komentar