
: (สแต็ก) หรือที่เรียกว่าสแต็ก เป็นตารางเชิงเส้นที่มีการดำเนินการจำกัด ปฏิบัติตามรายการเข้าก่อนออกก่อน (LIFO)
ของสแต็ก : รายการเชิงเส้นที่จำกัดการดำเนินการแทรกและการลบเฉพาะที่ส่วนท้ายของตาราง และ
ด้านล่างของสแต็ก : รายการเชิงเส้นที่จำกัดการดำเนินการแทรกและการลบ ไปที่ศีรษะเท่านั้น
การผลักดัน : การแทรกองค์ประกอบใหม่ลงในสแต็กเรียกอีกอย่างว่าการผลักดัน การผลักดัน หรือการผลักดันมัน
คือ การวางองค์ประกอบใหม่ไว้บนองค์ประกอบด้านบนของสแต็ก ทำให้เป็นองค์ประกอบบนสุดใหม่ของสแต็ก
องค์ประกอบสแต็กเรียกอีกอย่างว่าการแตกหรือแตกออกจากสแต็ก มันจะลบองค์ประกอบด้านบนของสแต็กและทำให้องค์ประกอบที่อยู่ติดกันกลายเป็นองค์ประกอบบนสุดใหม่ของสแต็ก

สิ่งที่มุ่งเน้นกระบวนการ:
มุ่งเน้นกระบวนการคือ การวิเคราะห์ขั้นตอน ในการแก้ปัญหา
จากนั้นใช้ฟังก์ชัน
เพื่อนำไปใช้งาน คุณเพียงแค่ต้อง ดำเนินการและเรียก ขั้นตอนเหล่านั้นทีละขั้นตอน
- กด (องค์ประกอบ ) เพิ่มองค์ประกอบตั้งแต่หนึ่งรายการขึ้นไปที่ด้านบนของสแต็ก
- ป๊อป () ลบองค์ประกอบด้านบนและส่งกลับองค์ประกอบที่ถูกลบออก
- ดูออก () ส่งคืนองค์ประกอบที่ด้านบนของสแต็ก
- isEmpty () คือ ใช้เพื่อตรวจสอบว่าสแต็กว่างเปล่าหรือไม่
- clear() ใช้เพื่อล้างองค์ประกอบของสแต็ก
- size() ใช้เพื่อส่งคืนจำนวนองค์ประกอบในสแต็ก
ก่อนที่จะนำไปใช้ลองคิดดู วิธีที่เรานำไปใช้
ขั้นแรก เรายืมวิธีการอาร์เรย์เพื่อนำไปใช้ ดังนั้นเราจึงจำเป็นต้องสร้าง
อาร์เรย์ว่างเพื่อจำลองสแต็ก
เพื่อสร้างคลาส ใช้อาร์เรย์เพื่อจำลอง และ
เขียนวิธีการต่าง ๆ ในคลาส
เพื่อเรียกวิธีการอาร์เรย์บางส่วน
โดยทั่วไป วิธีการใช้คลาสเพื่อรวม
อาร์เรย์คือการจำลอง
คลาสสแต็ก Stack {
ตัวสร้าง () {
นี่.รายการ = []
-
ผลักดัน (องค์ประกอบ) {
this.item.push (องค์ประกอบ)
-
โผล่() {
กลับ this.item.pop()
-
แอบมอง() {
กลับ this.item[this.item.length - 1]
-
isEmpty() {
ส่งคืน this.item.length === 0
-
ชัดเจน() {
นี่.รายการ = []
ขนาด() {
ส่งคืน this.item.length
-
-
// สร้างอินสแตนซ์คลาส Stack const stack = new Stack()
สแต็ค.ดัน(4)
สแต็ค.ดัน(6)
console.log( สแต็ค.ป๊อป())
console.log(stack.peek())
console.log(สแต็ค.isEmpty())
ผลลัพธ์ Console.log(stack.size())
:

เชิงวัตถุ:
เป็นการ แยกแยะสิ่งต่าง ๆ ที่สร้างปัญหาออกเป็นหลาย ๆ วัตถุ
วัตถุไม่ได้ถูกสร้างขึ้นเพื่อดำเนินการขั้นตอนใดขั้นตอนหนึ่ง แต่เพื่อ
อธิบาย พฤติกรรม ของบางสิ่งในกระบวนการแก้ไขปัญหา
- กด (องค์ประกอบ ) เพิ่มองค์ประกอบตั้งแต่หนึ่งรายการขึ้นไปที่ด้านบนของสแต็ก
- ป๊อป () ลบองค์ประกอบด้านบนและส่งกลับองค์ประกอบที่ถูกลบออก
- ดูออก () ส่งคืนองค์ประกอบที่ด้านบนของสแต็ก
- isEmpty () คือ ใช้เพื่อตรวจสอบว่าสแต็กว่างหรือไม่ ว่างคือว่างเปล่า
- clear() ใช้เพื่อล้างองค์ประกอบของ
- ขนาดสแต็ก() ใช้เพื่อส่งคืนจำนวนองค์ประกอบในสแต็ก
- toString() ใช้เพื่อพิมพ์สแต็กในรูปแบบ ของ string
จากนั้นเมื่อนำคลาสนี้ไปใช้ เราจะใช้ object กับ Simulation stack
คลาส Stack {
ตัวสร้าง () {
นี้.นับ=0
นี่.รายการ = {}
-
ผลักดัน (องค์ประกอบ) {
this.items[this.count]=องค์ประกอบ
นี้.นับ++
-
โผล่() {
ถ้า(this.isEmpty()){
กลับไม่ได้กำหนด
-
นี้.นับ--
ผล const=this.items[this.count]
ลบ this.items[this.count]
ส่งคืนผลลัพธ์
-
แอบมอง() {
ถ้า(this.isEmpty()){
กลับไม่ได้กำหนด
-
กลับ this.items[this.count-1]
-
isEmpty() {
ส่งคืน this.count===0
-
ชัดเจน() {
นี้.รายการ={}
นี้.นับ=0
-
ขนาด() {
ส่งคืน this.count
-
toString(){
ถ้า(this.isEmpty()){
กลับไม่ได้กำหนด
-
ให้ objectString=`${this.items[0]}`
สำหรับ(ให้ i=1;i<this.count;i++){
objectString=`${objectString},${this.items[i]}`
-
กลับ objectString
-
-
const stack = สแต็คใหม่ ()
สแต็ค.ดัน(23)
สแต็ค.ดัน(34)
สแต็ค.ดัน(80)
console.log( สแต็ค.ป๊อป())
console.log(stack.peek())
console.log(สแต็ค.isEmpty())
console.log (สแต็กขนาด ())
เมื่อ console.log(stack.toString())
ใช้อ็อบเจ็กต์เพื่อจำลองสแต็ก จะใช้คีย์:ค่า
เพื่อจัดเก็บข้อมูล ตัวอย่างเช่น this.items[this.count]=element ใช้
this.count เพื่อบันทึกในโครงสร้างนี้ ขนาดของสแต็ก
เมื่อเราใส่ตัวเลขลงไป เราจะกำหนด count เป็นคีย์
และใส่ค่าเป็นค่า ในเวลานี้ คุณต้องเปลี่ยน this.count++
เกี่ยวกับ pop() และ peek() เมธอด toString() จะต้อง
พิจารณาว่าสแต็กว่างเปล่าหรือไม่ ก็จะส่งคืน undefinition