1.implementasi Linked List
1.implementasi Linked List
self.data = data
self.next = None
class Stack:
def __init__(self):
self.top = None
new_node.next = self.top # Node baru menunjuk ke node yang sebelumnya ada di atas
def pop(self):
if self.is_empty():
return
def peek(self):
3
if self.is_empty():
return -1
def is_empty(self):
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
stack.pop()
4
2. Implementasi Queue
5
6
class Node:
self.data = data
self.next = None
class Queue:
def __init__(self):
self.front = None
self.rear = None
if self.is_empty():
else:
def dequeue(self):
if self.is_empty():
7
print("Queue kosong. Tidak bisa dequeue.")
return
def peek(self):
if self.is_empty():
return -1
def is_empty(self):
queue = Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
8
queue.dequeue()
9
PERBEDAAN IMPLEMENTASI STACK DAN
QUEUE MENGGUNAKAN ARRAY
1. Penyimpanan Data
2. Akses Data
3. Operasi
10
Implementasi Queue Menggunakan Array
1. Penyimpanan Data
2. Akses Data
3. Operasi
- Peek (Front): Membaca nilai elemen depan pada indeks terkecil array.
11
Implementasi Stack dan Queue Menggunakan Linked List
1. Penyimpanan Data
- Tidak ada indeks array yang digunakan, hanya referensi antar simpul.
2. Akses Data
- Elemen teratas stack atau elemen depan queue adalah simpul yang
paling atas dalam linked list.
3. Operasi
- Peek: Membaca nilai elemen teratas stack atau elemen depan queue.
Perbedaan utama adalah dalam cara data disimpan dan diakses. Stack
menggunakan prinsip "Last-In, First-Out" (LIFO) dan array, sementara
queue menggunakan prinsip "First-In, First-Out" (FIFO) dan array.
Implementasi dengan linked list menghilangkan pembatasan array,
sehingga memungkinkan penambahan dan penghapusan elemen
secara dinamis.
12