Sunday, March 28, 2010

stack

STACK adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan mengambil data dengan konsep LIFO (Last In First Out). Dimana dalam stack ini kumpulan data yang masuk diletakkan di atas data yang lain. Dan berdasar konsep LIFO maka data yang terakhir kali disimpan dalam stack akan menjadi data yang pertama kali diambil. Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push. Dan untuk memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau linked list.
Berikut ini contoh implementasi program stack dengan array.
Deklarasi Class
#include<"iostream.h">
#include<"conio.h">
#include<"stdio.h">
#define max_stack 10

class Stack
{
private:
char data[max_stack];
int top;
public:
Stack(){ top = -1;}
int isFull();
int isEmpty();
void push();
void pop();
void print();
};

Implementasi method isFull() dan isEmpty().
Method isEmpty() digunakan untuk mengecek apakah stack dalam keadaan kosong atau sudah berisi, sedangkan method isFull() digunakan untuk mengecek apakah stack sudah dalam keadaan penuh.
int Stack :: isFull()
{
if (top == max_stack -1 ) return 1;
else
return 0;
}

int Stack :: isEmpty()
{
if(top == -1) return 1;
else return 0 ;
}

Implementasi Method push() dan pop()
Seperti sudah dijelaskan seb elumnya method push() digunakan untuk menambah elemen di dalam stack, sedangkan method pop() digunakan untuk mengeluarkan elemen di dalam stack.
void Stack :: push()
{
char insert;
int i ;
cout << "Much of data : ";
cin >> i;
if( i > max_stack -1) cout << "Out Of Range"; cout << endl;
for(int j = 0;j<=i-1;j++)
{
cout << "insert data : ";
cin >> insert;
top++;
data[top] = insert;
}

getche();
}

void Stack :: pop()
{
cout << "Insert Index Data : ";
cin >> top;
cout << "Data Deleted : " << data[top] << endl;
top--;
}

No comments:

Post a Comment