Selasa, 15 Mei 2018

Stack, Queue, dan Dequeue Python

Stack, Queue, dan Dequeue pada Python

Stack (disebut pula “push-down stack”) adalah koleksi berurut dari item-item dimana
penambahan item baru dan penghapusan item yang telah ada selalu terjadi di ujung yang
sama. Ujung ini dinamakan sebagai “top.” Ujung berlawanan dari top dikenal sebagai “base.”
Stack diurutkan mengikuti konsep LIFO (last in first out). Berikut ini adalah beberapa operasi
terhadap stack:

- stack() membuat suatu stack baru yang kosong. Tidak memerlukan parameter dan
mengembalikan suatu stack kosong.
- push(item) menambahkan suatu item baru ke atas (top) dari stack. Perlu item dan
tidak mengembalikan apapun.
- pop() menghapus item teratas dari stack. Tidak perlu parameter dan mengembalikan
item. Stack berubah.
- peek() mengembalikan top item dari stack tetapi tidak menghapusnya. Tidak
memerlukan parameter dan stack tidak berubah.
- isEmpty() memeriksa apakah stack dalam keadaan kosong. Tidak memerlukan
parameter dan mengembalikan nilai boolean.
- size() mengembalikan jumlah item di dalam stack. Tidak memerlukan parameter dan
mengembalikan suatu integer.

Contoh Source code Stack():

class Stack:
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items==[]

    def push(self,items):
        self.items.append(items)

    def pop(self):
        return self.items.pop()

    def peek(self):
        return self.items[len(self.items)-1]

    def size(self):
        return len(self.items)
print ("=".center(42,"="))       
print ("Stack")
print ("=".center(42,"="))
print()
s = Stack()
s.push("Hello")
s.push("World")

while not s.isEmpty():
    print(s.pop())

Queue atau antrian adalah suatu koleksi item berurut dimana penambahan item baru terjadi
di satu ujung bernama “ekor” (rear) dan penghapusan terjadi pada ujung lainnya yang
dinamakan “kepala” (front). Queues menggunakan pengurutan FIFO. Berikut ini adalah
beberapa operasi Queue:

- queue() membuat suatu antrian baru yang kosong. Tidak memerlukan parameter dan
mengembalikan suatu antrian kosong.
- enqueue(item) menambahkan suatu item baru ke ujung saru antrian. Perlu item dan
tidak mengembalikan sesuatu.
- dequeue() menghapus item depan dari antrian. Tidak memerlukan parameter dan
mengembalikan itemnya. Antrian termodifikasi.
- isEmpty() menguji untuk melihat apakah antrian dalam keadaan kosong. Tidak
memerlukan parameter dan mengembalian nilai boolean.
- size() mengembalikan jumlah item yang ada di dalam antrian. Tidak memerlukan
parameter dan mengembalikan suatu integer.

Contoh Source code Queue():

class Queue:
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items==[]

    def enqueue (self,items):
        self.items.insert(0,items)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)
     
print("Queue")
print ("=".center(42,"="))
print ()
q = Queue()
q.enqueue("Hello")
q.enqueue("World")
q.enqueue("Python3")

while not q.isEmpty():
    print(q.dequeue())

Deque (Deantrian), dikenal juga sebagai antrian berujung dua (double-ended), adalah suatu koleksi item terurut serupa dengan queue. Perbedaannya? Sifat tidak terikat untuk penambahan dan penghapusan item-item dari antrian. Item baru dapat ditambahkan ke depan atau belakang. Karena itu, item yang ada dapat dihapuskan dari salah satu ujung. Struktur linier hibrida ini menyediakan semua kapabilutas stack dan antrian dalam satu struktur data.

- deque() membuat suatu deque baru yang kosong. Tidak perlu parameter dan mengembalikan suatu deque kosong.
- addFront(item) menambahkan suatu item baru ke depan dari deque. Perlu item dan tidak mengembalikan apapun.
- addRear(item) menambahkan suatu item baru ke ekor dari deque. Perlu item dam tidak mengembalikan sesuatu.
- removeFront() menghapus item depan dari deque. Tidak perlu parameter dan mengembalikan item. Deque termodifikasi.
- removeRear() menghapus item ujung (ekor) dari deque. Tidak perlu parameter dan mengembalikan item. Deque berubah.
- viewFront() menampilkan item depan dari deque.
- viewRear() menampilkan ujung (ekor) dari deque.
- isEmpty() menguji apakah deque dalam kondisi kosong. Tidak perlu parameter dan mengembalikan suatu

Contoh Source Code dequeue():

class Dequeu:
    def __init__(self):
        self.items = []
       
    def isEmpty(self):
        return self.items == []
       
    def addFront(self,items):
        self.items.insert(0,items)
       
    def addRear(self,items):
        self.items.append(items)
       
    def removeFront(self):
        return self.items.pop()
       
    def removeRear(self):
        return self.items.pop(0)
       
    def vievFront(self):
        return self.items[0]
       
    def viewRear(self):
        return self.items[len(self.items)-1]
       
print ("=".center(42,"="))
print ("Dequeu")
print ("=".center(42,"="))
d = Dequeu()
d.isEmpty()
d.addFront("d")
d.addFront("a")
d.addFront("s")
d.addFront("r")
d.addFront("I")

while not d.isEmpty():
    print(d.removeRear())

Pahami dan banyak-banyaklah mencoba...

Tidak ada komentar:

Posting Komentar

Sejarah, Kegiatan, dan Dokumnetasi Angkatan Teknik Informatika 2017 (INTEGER_17)

Sejarah, Kegiatan, dan Dokumentasi Angkatan Teknik Informatika 2017 (INTEGER_17) Assalamualaikum Wr. Wb. INTEGER Information Te...