Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Antrian Python:FIFO, LIFO Contoh

Apa itu Antrian Python?

Antrian adalah wadah yang menyimpan data. Data yang dimasukkan terlebih dahulu akan dihapus terlebih dahulu, dan karenanya antrian disebut juga “First in First Out” (FIFO). Antrian memiliki dua ujung depan dan belakang. Item dimasukkan dari belakang dan dikeluarkan dari sisi depan.

Dalam tutorial Python ini, Anda akan belajar:

Bagaimana Antrean Python Bekerja?

Antrian dapat dengan mudah dibandingkan dengan contoh dunia nyata antrean orang yang menunggu dalam antrian di loket tiket, orang yang berdiri pertama akan mendapatkan tiket terlebih dahulu, diikuti oleh orang berikutnya dan seterusnya. Logika yang sama juga berlaku untuk struktur data antrian.

Berikut adalah representasi diagram antrian:

Belakang mewakili titik di mana item dimasukkan ke dalam antrian. Dalam contoh ini, 7 adalah nilai untuk itu.

Bagian Depan mewakili titik di mana item dari antrian akan dihapus. Jika Anda menghapus item dari antrian, elemen pertama yang akan Anda dapatkan adalah 1, seperti yang ditunjukkan pada gambar.

Item 1 adalah yang pertama dimasukkan ke dalam antrian, dan saat menghapusnya adalah yang pertama keluar. Oleh karena itu antrian disebut FIRST IN FIRST OUT (FIFO)

Dalam antrian, item dihapus secara berurutan dan tidak dapat dihapus di antaranya. Anda tidak dapat menghapus item 5 secara acak dari antrean, untuk melakukannya Anda harus menghapus semua item sebelum 5. Item dalam antrean akan dihapus sesuai urutan dimasukkannya.

Jenis Antrian dengan Python

Ada dua jenis antrian di Python:

Instalasi antrian Python

Sangat mudah untuk bekerja dengan antrian di python. Berikut adalah langkah-langkah yang harus diikuti untuk memanfaatkan antrian dalam kode Anda.

Langkah 1) Anda hanya perlu mengimpor modul antrian, seperti yang ditunjukkan di bawah ini:

import queue

Modul ini tersedia secara default dengan python, dan Anda tidak memerlukan instalasi tambahan untuk mulai bekerja dengan antrian. Ada 2 jenis antrian FIFO (first in first out) dan LIFO (last in first out).

Langkah 2) Untuk bekerja dengan antrian FIFO , panggil kelas Antrian menggunakan modul antrian yang diimpor seperti yang ditunjukkan di bawah ini:

import queue
q1 = queue.Queue()

Langkah 3) Untuk bekerja dengan antrian LIFO, panggil kelas LifoQueue() seperti yang ditunjukkan di bawah ini:

import queue
q1 = queue.LifoQueue()

Metode tersedia di dalam kelas Antrian dan LifoQueue

Berikut ini adalah metode penting yang tersedia di dalam kelas Queue dan LifoQueue:

Contoh Antrian Masuk Pertama Keluar Pertama

Dalam kasus first in first out, elemen yang masuk lebih dulu akan menjadi yang pertama keluar.

Tambahkan dan item dalam antrian

Mari kita bekerja pada contoh untuk menambahkan item dalam antrian. Untuk mulai bekerja dengan antrean, pertama-tama impor antrean modul, seperti yang ditunjukkan pada contoh di bawah ini.

Untuk menambahkan item, Anda dapat menggunakan metode put() seperti yang ditunjukkan pada contoh:

import queue
q1 = queue.Queue()
q1.put(10) #this will additem 10 to the queue.

Secara default, ukuran antrian tidak terbatas dan Anda dapat menambahkan sejumlah item ke dalamnya. Jika Anda ingin menentukan ukuran antrian, hal yang sama dapat dilakukan sebagai berikut

import queue
q1 = queue.Queue(5) #The max size is 5.
q1.put(1)
q1.put(2)
q1.put(3)
q1.put(4)
q1.put(5)
print(q1.full()) # will return true.

Keluaran:

True

Sekarang ukuran antrian adalah 5, dan tidak akan mengambil lebih dari 5 item, dan metode q1.full() akan mengembalikan nilai true. Menambahkan item lagi tidak akan mengeksekusi kode lebih jauh.

Hapus item dari antrian

Untuk menghapus item dari antrian, Anda dapat menggunakan metode yang disebut get(). Metode ini memungkinkan item dari antrian saat dipanggil.

Contoh berikut menunjukkan cara menghapus item dari antrian.

import queue
q1 = queue.Queue()
q1.put(10)

item1 = q1.get()

print('The item removed from the queue is ', item1)

Keluaran:

The item removed from the queue is  10

Contoh Antrian Keluar Pertama Terakhir

Dalam hal terakhir dalam antrian keluar pertama, elemen yang masuk terakhir akan menjadi yang pertama keluar.

Untuk bekerja dengan LIFO, yaitu terakhir di antrian keluar pertama, kita perlu mengimpor modul antrian dan menggunakan metode LifoQueue().

Tambahkan dan item dalam antrian

Di sini kita akan memahami cara menambahkan item ke antrian LIFO.

import queue
q1 = queue.LifoQueue()
q1.put(10)

Anda harus menggunakan metode put() pada LifoQueue, seperti yang ditunjukkan pada contoh di atas.

Hapus item dari antrian

Untuk menghapus item dari LIFOqueue Anda dapat menggunakan metode get() .

import queue
q1 = queue.LifoQueue()
q1.put(10)

item1 = q1.get()

print('The item removed from the LIFO queue is ', item1)

Keluaran:

The item removed from the LIFO queue is  10

Tambahkan lebih dari 1 item dalam Antrian

Dalam contoh di atas, kita telah melihat bagaimana menambahkan satu item dan menghapus item untuk FIFO dan LIFOqueue. Sekarang kita akan melihat bagaimana menambahkan lebih dari satu item dan juga menghapusnya.

Tambahkan dan item dalam FIFOqueue

import queue
q1 = queue.Queue()

for i in range(20):
    q1.put(i) # this will additem from 0 to 20 to the queue

Hapus item dari FIFOqueue

import queue
q1 = queue.Queue()

for i in range(20):
    q1.put(i) # this will additem from 0 to 20 to the queue

while not q1.empty():
print("The value is ", q1.get()) # get() will remove the item from the queue.

Keluaran:

The value is  0
The value is  1
The value is  2
The value is  3
The value is  4
The value is  5
The value is  6
The value is  7
The value is  8
The value is  9
The value is  10
The value is  11
The value is  12
The value is  13
The value is  14
The value is  15
The value is  16
The value is  17
The value is  18
The value is  19

Tambahkan dan item dalam LIFOqueue

import queue
q1 = queue.LifoQueue()
for i in range(20):
    q1.put(i) # this will additem from 0 to 20 to the queue

Hapus item dari LIFOqueue

import queue
q1 = queue.LifoQueue()

for i in range(20):
    q1.put(i) # this will additem from 0 to 20 to the queue


while not q1.empty():
print("The value is ", q1.get()) # get() will remove the item from the queue. 

Keluaran:

The value is  19
The value is  18
The value is  17
The value is  16
The value is  15
The value is  14
The value is  13
The value is  12
The value is  11
The value is  10
The value is  9
The value is  8
The value is  7
The value is  6
The value is  5
The value is  4
The value is  3
The value is  2
The value is  1
The value is  0 

Mengurutkan Antrian

Contoh berikut menunjukkan pengurutan antrian. Algoritma yang digunakan untuk pengurutan adalah pengurutan gelembung.

import queue
q1 = queue.Queue()
#Addingitems to the queue
q1.put(11)
q1.put(5)
q1.put(4)
q1.put(21)
q1.put(3)
q1.put(10)

#using bubble sort on the queue
n =  q1.qsize()
for i in range(n):
    x = q1.get() # the element is removed
    for j in range(n-1):
        y = q1.get() # the element is removed
        if x > y :  
            q1.put(y)   #the smaller one is put at the start of the queue
        else:
            q1.put(x)  # the smaller one is put at the start of the queue
            x = y     # the greater one is replaced with x and compared again with nextelement
    q1.put(x)

while (q1.empty() == False): 
print(q1.queue[0], end = " ")  
        q1.get()

Keluaran:

3 4 5 10 11 21

Membalikkan Antrian

Untuk membalikkan antrian, Anda dapat menggunakan antrian dan rekursi lain.

Contoh berikut menunjukkan cara membalikkan antrian.

Contoh:

import queue
q1 = queue.Queue()

q1.put(11)
q1.put(5)
q1.put(4)
q1.put(21)
q1.put(3)
q1.put(10)

def reverseQueue (q1src, q2dest) :  
    buffer = q1src.get()
    if (q1src.empty() == False) :
reverseQueue(q1src, q2dest)      #using recursion
    q2dest.put(buffer)
return q2dest

q2dest = queue.Queue()
qReversed = reverseQueue(q1,q2dest)

while (qReversed.empty() == False): 
print(qReversed.queue[0], end = " ")  
        qReversed.get()

Keluaran:

10 3 21 4 5 11

Ringkasan:


Python

  1. Operator Python
  2. Kamus Python
  3. Python String strip() Fungsi dengan CONTOH
  4. Panjang string python | len() metode Contoh
  5. Hasil dalam Python Tutorial:Generator &Hasil vs Contoh Pengembalian
  6. Penghitung Python dalam Koleksi dengan Contoh
  7. Enumerate() Fungsi dalam Python:Loop, Tuple, String (Contoh)
  8. Python time.sleep():Tambahkan Penundaan ke Kode Anda (Contoh)
  9. Indeks Daftar Python () dengan Contoh
  10. FIFO vs LIFO:Perbedaan, Kelebihan dan Kekurangan, Aplikasi, dan Lainnya