Skip to content

Instantly share code, notes, and snippets.

@ridwanbejo
Created October 25, 2018 09:39
Show Gist options
  • Save ridwanbejo/5a0d6bd7de4dda2d155cd8acdc51972e to your computer and use it in GitHub Desktop.
Save ridwanbejo/5a0d6bd7de4dda2d155cd8acdc51972e to your computer and use it in GitHub Desktop.
jalankan file ini dengan menggunakan "python queue-adt.py" di dalam cmd atau terminal
class QueueArray(object):
def create_queue(self):
self.queue = []
def destroy_queue(self):
self.queue = None
def enqueue(self, nilai):
if type(self.queue) != None:
self.queue.append(nilai)
else:
print "Queue sudah dihapus, tidak bisa memasukkan nilai ke Queue!"
def pull(self):
if type(self.queue) != None:
try:
del self.queue[0]
except IndexError:
print "Queue sudah kosong, tidak dapat menarik nilai dari Queue!"
else:
print "Queue sudah dihapus, tidak bisa memasukkan nilai ke Queue!"
def is_empty(self):
if self.size == 0:
return True
else:
return False
def size(self):
count_nilai = 0
panjang_queue = len(self.queue)
for indeks in range(0, panjang_queue):
count_nilai = count_nilai + 1
return count_nilai
def show(self):
panjang_queue = len(self.queue)
print " <- HEAD",
for indeks in range(0, panjang_queue):
print self.queue[indeks],
print " <- TAIL"
my_queue = QueueArray()
my_queue.create_queue()
my_queue.enqueue(10)
my_queue.enqueue(20)
my_queue.enqueue(30)
my_queue.enqueue(40)
my_queue.enqueue(50)
my_queue.enqueue(60)
my_queue.enqueue(70)
my_queue.enqueue(80)
my_queue.enqueue(90)
my_queue.enqueue(100)
my_queue.enqueue(110)
my_queue.enqueue(120)
print "SEBELUM: "
print my_queue.size()
my_queue.show()
for i in range(0, my_queue.size()):
print "\nITERASI - {0}:".format(i)
my_queue.pull()
print my_queue.size()
my_queue.show()
print "SESUDAH: "
my_queue.pull()
print my_queue.size()
my_queue.show()
# Contoh output
"""
$ python queue-adt.py
SEBELUM:
12
<- HEAD 10 20 30 40 50 60 70 80 90 100 110 120 <- TAIL
ITERASI - 0:
11
<- HEAD 20 30 40 50 60 70 80 90 100 110 120 <- TAIL
ITERASI - 1:
10
<- HEAD 30 40 50 60 70 80 90 100 110 120 <- TAIL
ITERASI - 2:
9
<- HEAD 40 50 60 70 80 90 100 110 120 <- TAIL
ITERASI - 3:
8
<- HEAD 50 60 70 80 90 100 110 120 <- TAIL
ITERASI - 4:
7
<- HEAD 60 70 80 90 100 110 120 <- TAIL
ITERASI - 5:
6
<- HEAD 70 80 90 100 110 120 <- TAIL
ITERASI - 6:
5
<- HEAD 80 90 100 110 120 <- TAIL
ITERASI - 7:
4
<- HEAD 90 100 110 120 <- TAIL
ITERASI - 8:
3
<- HEAD 100 110 120 <- TAIL
ITERASI - 9:
2
<- HEAD 110 120 <- TAIL
ITERASI - 10:
1
<- HEAD 120 <- TAIL
ITERASI - 11:
0
<- HEAD <- TAIL
SESUDAH:
Queue sudah kosong, tidak dapat menarik nilai dari Queue!
0
<- HEAD <- TAIL
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment