הטמעת Stack ב-JavaScript

Htm T Stack B Javascript



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

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







הטמעת Stack ב-JavaScript

נשתמש במחלקת JavaScript כדי ליישם את מבנה הנתונים מחסנית. ה לַעֲרוֹם class יכיל מערך בבנאי שלו אשר ישמש לאחסון אלמנטים בערימה. המחלקה גם תגדיר שיטות שונות אשר ישמשו כדי לתפעל את הנתונים המאוחסנים בתוך המחסנית. השיטות הבסיסיות ביותר של המערך הן ה לְהַכנִיס() ו לחלץ() שיטות המשמשות להוספה והסרה של אלמנטים מהחלק העליון של הערימה.



ה לַעֲרוֹם class מגדיר גם שיטות אחרות כגון לְהָצִיץ() , זה ריק() , ברור() , הדפס() ו גודל() גם כן:



מחסנית כיתה {
בַּנַאִי ( ) {

this.elements = [ ] ;

}

// מניח פריט על גבי הערימה

לְהַכנִיס ( אֵלֵמֶנט ) {

this.elements.push ( אֵלֵמֶנט ) ;

}

// מסיר פריט מהחלק העליון של הערימה

לחלץ ( ) {

this.elements.pop ( ) ;

}

// מחזירה את הרכיב העליון ביותר של הערימה

לְהָצִיץ ( ) {

לַחֲזוֹר זה.אלמנטים [ this.elements.length - 1 ] ;

}
// צ'קים אם המחסנית ריקה

זה ריק ( ) {

לַחֲזוֹר this.elements.length == 0 ;

}

// מדפיס את כל הערימה

הדפס ( ) {
ל ( תן אני = 0 ; אני < this.elements.length; i++ ) {
console.log ( זה.אלמנטים [ אני ] ) ;
}

}
// מחזיר את גודל של הערימה

גודל ( ) {

לַחֲזוֹר this.elements.length;

}

// מנקה את הערימה

ברור ( ) {
this.elements = [ ] ;
}

}





דחיפה וקפיצה של אלמנטים מהערימה

הפעולה הבסיסית ביותר של המחסנית היא הכנסת וחילוץ אלמנטים מהחלק העליון של הערימה. מחלקת המחסנית מספקת שתי שיטות לפעולות אלה:


השורה הראשונה של הקוד שהוזכר לעיל מצהירה על מחסנית חדשה בשם ס . אז ה לְהַכנִיס() השיטה משמשת להכנסת ארבעה אלמנטים לערימה, שניים מהם מוסרים על ידי ה- לחלץ() שיטה.



איך להוציא את האלמנט העליון מהערימה

ה לַעֲרוֹם הכיתה מגדירה את לְהָצִיץ() שיטה לקבל את האלמנט העליון מהמחסנית:


איך בודקים אם המחסנית ריקה?

המחלקה גם מגדירה שיטה שבה ניתן להשתמש כדי לבדוק אם המחסנית ריקה:


איך להדפיס את כל הערימה?

ה הדפס() ניתן לקרוא לשיטה כדי להדפיס את כל הערימה


איך בודקים את גודל הערימה?

ה גודל() השיטה משתמשת ב- .אורך מאפיין כדי לקבל את גודל הערימה:


איך לנקות את כל הערימה?

כל שעליך לעשות הוא להפעיל את ברור() שיטה להסיר כל רכיב בערימה:

סיכום

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

ההטמעה של מחסנית ב-JavaScript היא ממש קלה מכיוון שיש בה את המובנה לִדחוֹף ו פּוֹפּ שיטות עבור מערכים. מאמר זה מדגים את תהליך ההטמעה של מחסנית ב-JavaScript.