การนำ Stack ไปใช้งานใน JavaScript

Karna Stack Pi Chi Ngan Ni Javascript



Stacks เป็นโครงสร้างข้อมูลเชิงเส้นที่เป็นไปตามหลักการของ LIFO LIFO ย่อมาจาก Last in first out หมายความว่ารายการที่เพิ่มล่าสุดเป็นรายการแรกที่จะถูกลบออก โครงสร้างข้อมูลนี้มีชื่อว่า stack ที่คล้ายกับสแต็คในโลกแห่งความเป็นจริง เช่น กองคุกกี้ในโถคุกกี้ หรือกองหนังสือบนชั้นวางหนังสือ ในการแทรกและดึงสแต็กสามารถทำได้ที่ปลายด้านเดียวเท่านั้น กล่าวคือ ด้านบนของสแต็ก ตัวอย่างเช่น ถ้าเราอยากกินคุกกี้ เราก็จะได้อันบนก่อน แล้วค่อยมากินที่ 2 เป็นต้น

โพสต์นี้จะเกี่ยวกับการใช้งาน stack ใน JavaScript ขณะที่เรากำลังทำงานกับ JavaScript เราจะไม่กังวลเกี่ยวกับขนาดของสแต็ก เนื่องจากขนาดของออบเจกต์ JavaScript สามารถเติบโตแบบไดนามิกได้







การนำ Stack ไปใช้งานใน JavaScript

เราจะใช้คลาส JavaScript เพื่อใช้โครงสร้างข้อมูลสแต็ก ดิ ซ้อนกัน คลาสจะมีอาร์เรย์ในตัวสร้างซึ่งจะใช้ในการจัดเก็บองค์ประกอบในสแต็ก คลาสจะกำหนดวิธีการต่าง ๆ ซึ่งจะใช้เพื่อจัดการกับข้อมูลที่เก็บไว้ในสแต็ก วิธีการพื้นฐานที่สุดของอาร์เรย์คือ แทรก() และ สารสกัด() เมธอดที่ใช้ในการเพิ่มและลบองค์ประกอบออกจากด้านบนของสแต็ก



ดิ ซ้อนกัน คลาสยังกำหนดวิธีการอื่นเช่น แอบมอง() , มันว่างเปล่า() , แจ่มใส() , พิมพ์() และ ขนาด() เช่นกัน:



กองคลาส {
ตัวสร้าง ( ) {

this.elements = [ ] ;

}

// วางรายการบนกองซ้อน

แทรก ( ธาตุ ) {

this.elements.push ( ธาตุ ) ;

}

// นำรายการออกจากด้านบนของสแต็ก

สารสกัด ( ) {

this.elements.pop ( ) ;

}

// ส่งกลับองค์ประกอบบนสุดของ stack

แอบดู ( ) {

กลับ this.elements [ this.elements.length - 1 ] ;

}
// เช็ค ถ้า สแต็คว่างเปล่า

มันว่างเปล่า ( ) {

กลับ this.elements.length == 0 ;

}

// พิมพ์ทั้งกอง

พิมพ์ ( ) {
สำหรับ ( อนุญาต ผม = 0 ; ผม < this.elements.length; ฉัน++ ) {
console.log ( this.elements [ ผม ] ) ;
}

}
// ส่งกลับ ขนาด ของกอง

ขนาด ( ) {

กลับ this.elements.length;

}

// ล้างกอง

แจ่มใส ( ) {
this.elements = [ ] ;
}

}





ผลักและแตกองค์ประกอบจากสแต็ก

การดำเนินการขั้นพื้นฐานที่สุดของสแต็กคือการแทรกและแยกองค์ประกอบออกจากด้านบนของสแต็ก คลาสสแต็กจัดเตรียมสองวิธีสำหรับการดำเนินการเหล่านี้:


บรรทัดแรกของรหัสที่กล่าวถึงข้างต้นประกาศสแต็กใหม่ชื่อ . จากนั้น แทรก() เมธอดใช้เพื่อแทรกสี่องค์ประกอบลงในสแต็ก โดยสองในนั้นจะถูกลบออกโดย สารสกัด() กระบวนการ.



วิธีรับองค์ประกอบด้านบนจาก stack

ดิ ซ้อนกัน คลาสกำหนด แอบมอง() วิธีรับองค์ประกอบด้านบนจากสแต็ก:


วิธีตรวจสอบว่า stack ว่างหรือไม่?

คลาสยังกำหนดวิธีการที่สามารถใช้เพื่อตรวจสอบว่าสแต็กว่างเปล่าหรือไม่:


วิธีการพิมพ์ทั้งกอง?

ดิ พิมพ์() สามารถเรียกวิธีการพิมพ์ทั้ง stack


จะตรวจสอบขนาดของกองได้อย่างไร?

ดิ ขนาด() วิธีการใช้ .ความยาว คุณสมบัติเพื่อรับขนาดของสแต็ก:


จะล้างทั้งกองได้อย่างไร?

เพียงเรียกใช้ แจ่มใส() วิธีการลบทุกองค์ประกอบของสแต็ก:

บทสรุป

สแต็คเป็นโครงสร้างข้อมูลที่มีประโยชน์พร้อมแอปพลิเคชันจริงมากมาย เช่น ประวัติเบราว์เซอร์ ปุ่มเลิกทำในโปรแกรมแก้ไขข้อความ และบันทึกการโทร แอปพลิเคชันทั้งหมดเหล่านี้เป็นไปตามหลักการ LIFO เช่น ปุ่มย้อนกลับในเบราว์เซอร์จะนำกลับไปยังหน้าที่เข้าชมล่าสุด และรายการแรกของบันทึกการโทรจะเป็นการโทรล่าสุดเสมอ

การนำสแต็กไปใช้ใน JavaScript นั้นง่ายมากเพราะมี inbuilt ดัน และ โผล่ วิธีการสำหรับอาร์เรย์ บทความนี้แสดงขั้นตอนการใช้งานสแต็คใน JavaScript