כיצד ליישם תור באמצעות שתי ערימות

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 4 אַפּרִיל 2021
תאריך עדכון: 19 נוֹבֶמבֶּר 2024
Anonim
Implementing a Queue Using Two Stacks - Data Structures
וִידֵאוֹ: Implementing a Queue Using Two Stacks - Data Structures

תוֹכֶן

התור הוא מבנה נתונים דינמי שממנו ניתן לגשת לנתונים בתהליך "ראשון-יוצא ראשון". ערימה היא מבנה נתונים דינמי שממנו ניתן לגשת לנתונים בתהליך "נכנס אחרון, יוצא ראשון". אם תיישם מחסנית, רק הפריט האחרון שתזין יהפוך לזמין. אם אתה רוצה לגשת לנתונים כי הוא הבסיס שלה (את הפריט הראשון שאתה שם), אז אתה תהיה טיפול זה בתור. כדי לעשות זאת, עליך ליישם ערימה שנייה.


הוראות

יישום תור באמצעות שתי ערימות הוא פשוט (Ablestock.com/AbleStock.com/Getty תמונות)

    שתי ערימות שוות בשורה

  1. בעורך הטקסט שלך, כתוב את הקוד כדי ליישם את הערימה בהתאם לנהלים ולפונקציות הזמינים בשפת התכנות שבה ברצונך להשתמש. התקשר לערימה הזו Stack_Entry. שים את הנתונים ב- Stack_Entry (שפות תכנות רבות משתמשות בפקודה "push" כדי להוסיף נתונים). לדוגמה, להפעיל את הפקודה "לדחוף" ב Stack_Entry להזין את הנתונים בסדר הבא: "A", "B" ו- "C". "A" הוא הראשון להיכנס והוא בחלק התחתון של הערימה. אם ברצונך לגשת לפריט הראשון, אתה מטפל בנתונים בתור.

  2. כתוב את הקוד כדי ליישם ערימה שנייה בהתאם לנהלים ולפונקציות הזמינים בשפת התכנות שבה ברצונך להשתמש. קוראים לזה StackSafe (שפות תכנות רבות משתמשות בפקודה "pop" כדי להסיר נתונים מערימה).

  3. הסר כל פריט מהמחסנית Stack_Insert והנח אותם במחסנית השינה. באופן כללי, אתה מסיר פריט Stack_Input ומקם אותו ב- StackAid. לאחר מכן, בדוק אם ה- Stack_Input ריק. אם הוא אינו ריק, הסר את הפריט הבא מתוך Stack_Input והנח אותו בערימת השינה. חזור על הפעולה עד שה- Stack_Input ריק. בדוגמה שלנו, אתה מסיר את "C" מ Stack_Input ולשים אותו Stack_Aid. ודא ש- InputPilot ריק. הסר "B" מ Stack_Input ולהגדיר אותו Stack_Aid. ודא ש- InputPilot ריק. הסר "A" מ Stack_Input ולהגדיר אותו Stack_Aid. ודא ש- InputPilot ריק.


  4. כאשר ערימת Stack_Path ריקה, הפריט שהיה ב- Stack_Input ("A" בדוגמה שלנו) הבסיס נמצא כעת בחלק העליון של Stack_Aside. הסר את הפריט SleepSeat והפכת את הערימה לתור. הפריט הראשון שלך בערימה הוא כעת הפריט הראשון שיוצא (תחילה, תחילה, או FIFO תחילה, תחילה).

איך

  • רוב שפות התכנות מספקות פונקציות לטיפול בנתונים בווקטור כאילו היה תור או ערימה. כלומר, אתה יכול לגשת גם את האחרון ואת המיקום הראשון של וקטור ללא קשר לאיזה סוף אתה מזין את הנתונים מ. אם הנתונים שלך הם בקטור, אתה לא צריך לדאוג לגשת אליהם בתור תור או מחסנית. אבל אם הנתונים שלך הוא ערימה דינמית ואתה רוצה להתייחס אליו בתור בתור אז אתה צריך ליישם ערימה השנייה.

מה שאתה צריך

  • עורך טקסט
  • מהדר או מתורגמן עבור שפת תכנות כלשהי

איך לשאוף עם קיטור

Robert Simon

נוֹבֶמבֶּר 2024

אלה אנשים הסובלים ממחלות שונות, כגון הצטננות, laryngiti ו סינוסיטיס, יכולים להפיק תועלת תכונות ריפוי עוצמה של קיטור. זה מקטין את גודש האף על ידי הרחבת הנחיריים ואת ריריות ריריות דליל סתומים בקרום. נשי...

כיצד להרוויח כרטיס משחק

Robert Simon

נוֹבֶמבֶּר 2024

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

מרתק