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

מתוך testwiki
קפיצה לניווט קפיצה לחיפוש
Representation of a FIFO (first in, first out) queue

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

  • הכנסה (enqueue) - הוספת אובייקט אחד חדש בסופו של התור (tail).
  • הוצאה (dequeue) - הוצאתו של האובייקט הנמצא בראש התור (head).

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

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

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

דוגמה

קיים מודל בפייתון 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([])