פייתון/פייתון גרסה 3/תור

תור (queue) הוא מבנה נתונים מופשט, מוגבל בגודלו, המוגדר על ידי הפעולות הבאות:

  • הכנסה (enqueue) - הוספת אובייקט אחד חדש בסופו של התור (tail).
  • הוצאה (dequeue) - הוצאתו של האובייקט הנמצא בראש התור (head).
Representation of a FIFO (first in, first out) queue

על חלק מהמחסניות ניתן להפעיל את הפונקציות:

  • is_empty() - בודקת האם המחסנית ריקה כלומר אם tail=head.
  • peek() - בדיקה מה הוא האובייקט הבא.

כל הפעולות מתבצעות בסיבוכיות , כלומר במספר פעולות שאיננו תלוי בגודל הקלט.

דוגמה עריכה

קיים מודל בפייתון queue באמצעותו ניתן לייצר תורים שונים.

אנו נייצר תור מסוג Queue:

import queue
q = queue.Queue()

נבצע הכנסת של איברים:

import queue

q = queue.Queue()

q.put('A')
q.put('B')

print(q.queue)
>>>deque(['A', 'B'])

נוציא את האיברים:

import queue

q = queue.Queue()

q.put('A')
q.put('B')

print(q.queue)

q.get()
print(q.queue)

q.get()
print(q.queue)

q.get()
print(q.queue)

>>>deque(['A', 'B'])
>>>deque(['B'])
>>>deque([])