Skip to content
Santekno.com | Tech Tutorials and Trends
ID
📖 0%
C++

Cara Membuat Stack menggunakan Double Linked List

· 2 mnt baca ·Ihsan Arif

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

cpp
 1#include <iostream>
 2#include <list>
 3
 4using namespace std;
 5
 6class Stack{
 7    list<int> stack;
 8    list<int>::iterator atas;
 9public:
10    Stack(){atas=stack.begin();}
11    bool empty(){return (atas==stack.end());}
12    int size(){ return stack.size();}
13    void push(int nilai);
14    void pop();
15    int top();
16    list<int>::iterator getAtas() {return atas;}
17    list<int> getStack() {return stack;}
18};

Kode Program Push()

cpp
1void Stack::push(int val){
2    stack.push_front(val);
3    atas=stack.begin();
4}

Kode Program Pop()

cpp
1void Stack::pop(){
2    if(empty())
3        cout << "Stack is empty\n";
4    else{
5        ++atas;
6        stack.pop_front();
7    }
8}

Kode Program Top()

cpp
1int Stack::top(){
2    return (*atas);
3}

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.

IH
Ihsan Arif
Backend engineer & penulis di Santekno. Aktif menulis tentang Go, Laravel, dan arsitektur backend modern.
Follow

💬 Komentar