תורים בדרך כלל מתסכלים בחיים האמיתיים, אבל בתוכנת מחשב הם יכולים לפתור בעיות רבות. גלה מה אתה יכול לעשות עם תור וכיצד.
התור הוא מבנה נתונים רב תכליתי שבו אתה יכול להשתמש במגוון הגדרות. מאלגוריתמים של תזמון CPU ועד אפליקציות אינטרנט, זה נמצא בכל מקום.
אם אתה שואף להיות מפתח Python, חיוני שתתעדכן במבנה הנתונים הפשוט הזה אך נוכח בכל מקום. בואו ללמוד מהו מבנה הנתונים בתור וכיצד ליישם אחד ב-Python.
מהו מבנה הנתונים בתור?
תור הוא מבנה נתונים ליניארי, העוקב אחר עקרון First-In-First-Out (FIFO). משמעות הדבר היא שכאשר אתה מביא רכיב מהתור, תקבל את מה שהוספת לפני האחרים.
להלן הפעולות הבסיסיות שתוכל לבצע בתור:
- תור: הוסף אלמנטים לתור.
- תור: הסר אלמנטים מהתור.
- הדפסה: הדפס את האלמנטים בתור.
- חזית: קבל את האלמנט בקדמת התור.
- אחורי: קבל את האלמנט בחלק האחורי של התור.
אתה יכול ליישם את מבנה נתוני התור ב-Python בשתי דרכים: באמצעות מיכל רשימה או תור בעל סיום כפול ממודול האיסוף. עבור תוכנית זו, תשתמש ברשימה.
כיצד ליישם את מבנה הנתונים בתור ב-Python
אתה תטמיע תור באמצעות מיכל הרשימה ב- Python. התחל בהכרזה על רשימה ריקה עם השם תוֹר.
תור = []
כעת עליך לקבל קלט משתמש ולבצע את הפעולה שהזין המשתמש. ראשית, הדפס שורה המנחה את המשתמש להזין פקודה. לאחר מכן, המתן לקלט המשתמש ואחסן אותו ב- פקודה מִשְׁתַנֶה.
באמצעות הצהרות פייתון אם, בצע את הפעולה המתאימה לפקודה שהמשתמש מזין. אם הם הזינו פקודה לא מזוהה, צא מהתוכנית. שים את הפעולות הללו בתוך אינסוף בעוד לולאה כדי להבטיח שהתוכנית תמשיך לפעול אלא אם כן הם נסגרים.
בזמןנָכוֹן:
פקודה = קלט("מה אתה רוצה לעשות? ")אם פקודה == "תור":
# קוד
אליף פקודה == "לעמוד בתור":
# קוד
אַחֵר:
לשבור
הדפס (תור)
תור
כעת עסקתם בזרימת הבקרה הראשית של התוכנית, תוכלו להגדיר את בלוק הקוד עבור כל פעולה. ראשית, כתוב את הקוד לתור. תור פירושו להכניס אלמנט בסוף התור. אתה יכול לעשות זאת באמצעות לְצַרֵף() שיטה:
אםפקודה == "תור":
תור = int(קֶלֶט("הזן את האלמנט ל-Enqueue:"))
תור
כעת, כתוב את הקוד כדי להעביר רכיב מהתור. אתה יכול לעשות זאת באמצעות שיטת ה-pop עם 0 כאינדקס. למה? כפי שלמדת קודם לכן, תור עוקב אחר סדר FIFO, כך שהרכיב הראשון שאתה מעמיד בתור צריך להיות הרכיב הראשון שאתה מעמיד בתור.
אם פקודה == "לעמוד בתור":
queue.pop(0)
חֲזִית
ממשיכים הלאה, כתוב את הקוד כדי להדפיס את האלמנט בקדמת התור. כל שעליך לעשות הוא להדפיס את האינדקס ה-0 של התור.
אם פקודה == "חֲזִית":
הדפס (תור[0])
חלק אחורי
בדומה לקוד לפעולה הקדמית, לביצוע הפעולה האחורית להדפיס את האלמנט באינדקס האחרון. כדי לעשות זאת תחילה השתמש בפונקציה len() בתור ולאחר מכן הורד ממנה 1 כדי למצוא את האינדקס האחרון.
אם פקודה == "חלק אחורי":
print (queue[len (queue) - 1])
הדפס
לבסוף, כתוב את הקוד עבור פקודת ההדפסה. כל שעליך לעשות הוא להדפיס את הרשימה באמצעות התקן של Python הדפס() פוּנקצִיָה.
אם פקודה == "הדפס":
הדפס (תור)
אם הטקסט שהמשתמש מזין אינו תואם לפקודה נתמכת, צא מלולאת ה-while באמצעות הצהרת break. הקוד הסופי אמור להיראות כך:
תור = []
בזמןנָכוֹן:
פקודה = קלט("מה אתה רוצה לעשות?\n")אם פקודה == "תור":
enqueue = int (קלט("הזן את האלמנט ל-Enqueue:"))
queue.append (תור)
אליף פקודה == "לעמוד בתור":
queue.pop(0)
אליף פקודה == "הדפס":
הדפס (תור)
אליף פקודה == "חֲזִית":
הדפס (תור[0])
אליף פקודה == "חלק אחורי":
print (queue[len (queue)-1])
אַחֵר:
לשבור
הדפס (תור)
הפעל את התוכנית כדי לנסות את פעולות התור השונות. השתמש בפקודת ההדפסה כדי לראות כיצד הם משפיעים על התור שלך. כעת יצרת יישום תור פשוט משלך ב- Python.
התור הוא רק אחד מהרבה מבני נתונים שימושיים
הרעיון של מבנה נתונים הוא רעיון חיוני שכל סטודנט למדעי המחשב חייב לשלוט בו. רוב הסיכויים שאולי כבר למדת או עבדת עם כמה מבני נתונים בסיסיים כגון מערכים או רשימות.
מראיינים נוטים גם לשאול שאלות הקשורות למבני נתונים, כך שאם אתה מחפש לעבוד בתכנות עם שכר גבוה, תצטרך לרענן את הידע שלך במבני הנתונים.