Implementasi Algoritma Stack dalam Bahasa Pemrograman
Stack adalah struktur data yang menggunakan prinsip Last In First Out (LIFO). Artinya, elemen yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack.
Untuk membuat sebuah stack, Anda dapat menggunakan list di Python sebagai implementasinya. Kita juga bisa mengimplementasikan algoritma stack menggunakan bahasa pemrograman lain.
1. Algoritma Stack dalam Python
Berikut adalah contoh implementasi stack menggunakan list di Python:class Stack: def __init__(self): self.items = [] def is_empty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[-1] def size(self): return len(self.items)
2. Algoritma Stack dalam C++
Berikut adalah contoh implementasi stack di C++ menggunakan template class:#include <iostream> #include <vector> template <typename T> class Stack { private: std::vector<T> stack; public: void push(T item) { stack.push_back(item); } T pop() { if (stack.empty()) { throw std::underflow_error("Stack is empty"); } T item = stack.back(); stack.pop_back(); return item; } T peek() { if (stack.empty()) { throw std::underflow_error("Stack is empty"); } return stack.back(); } bool is_empty() { return stack.empty(); } int size() { return stack.size(); } };
3. Algoritma Stack dalam PHP
Berikut adalah contoh implementasi stack di PHP menggunakan class:class Stack { private $stack; private $top; public function __construct() { $this->stack = array(); $this->top = -1; } public function push($item) { array_push($this->stack, $item); $this->top++; } public function pop() { if ($this->top < 0) { return null; } $item = $this->stack[$this->top]; unset($this->stack[$this->top]); $this->top--; return $item; } public function peek() { if ($this->top < 0) { return null; } return $this->stack[$this->top]; } public function is_empty() { return $this->top < 0; } public function size() { return $this->top + 1; } }