Stack (tumpukan) adalah struktur data yang memberikan data seperti tumpukan dalam gelas, jadi jika suatu data akan dimasukkan ke dalam gelas yang pertama akan menjadi yang terakhir untuk diambil, maka struktur data ini menganut kaidah LIFO (Last In First Out)
. Arti dari LIFO itu adalah yang terakhir masuk maka akan menjadi yang pertama keluar.
Stack yang akan Santekno buat menerapkan sistem OOP (Object Oriented Programming)
sehingga agar lebih mudah dipahaminya. Dalam OOP kita harus membuat suatu kelas yang akan kita namakan Stack.
Implementasi Stack menggunakan DLL juga sama saja kaidahnya tidak dihilangkan, tetapi yang paling beda yaitu jika menggunakan DLL itu lebih longgar terhadap pengalokasian data, karena struktur data Double Linked List unlimited walaupun bisa di batasi.
Source Code Stack
#include <iostream>
#include <list>
using namespace std;
class Stack{
list<int> stack;
list<int>::iterator atas;
public:
Stack(){atas=stack.begin();}
bool empty(){return (atas==stack.end());}
int size(){ return stack.size();}
void push(int nilai);
void pop();
int top();
list<int>::iterator getAtas() {return atas;}
list<int> getStack() {return stack;}
};
Kode Program Push()
void Stack::push(int val){
stack.push_front(val);
atas=stack.begin();
}
Kode Program Pop()
void Stack::pop(){
if(empty())
cout << "Stack is empty\n";
else{
++atas;
stack.pop_front();
}
}
Kode Program Top()
int Stack::top(){
return (*atas);
}
Kelas ini memiliki beberapa method atau fungsi yang sesuai dengan sifat-sifat dan kaidah Stack. Seperti Push, Pop, Top dan Full. Push adalah menyimpan data ke dalam stack. lalu Pop adalah mengambil data paling atas dari Stack sedangkan Top adalah melihat isi data yang paling atas dari suatu Stack.