สแต็คคือโครงสร้างข้อมูลที่เป็นไปตามหลักการ Last-In-First-Out (LIFO) ซึ่งหมายความว่ารายการสุดท้ายที่แทรกลงในสแต็กเป็นรายการแรกที่จะถูกลบ
กล่าวอีกนัยหนึ่ง สแต็กคือรายการองค์ประกอบที่สามารถเข้าถึงได้จากปลายด้านหนึ่งของรายการเท่านั้น ซึ่งเรียกว่าด้านบนของสแต็ก (ToS)
ตัวอย่างในโลกแห่งความเป็นจริงคือกองจาน ในภาพด้านบนจะเห็นว่าเพลทที่ใส่เข้าไปสุดท้ายคืออันแรกที่ต้องถอด
การดำเนินงานที่เราจะดำเนินการ:
Push→ เพิ่มองค์ประกอบลงในสแต็กPop→ ลบองค์ประกอบออกจากสแต็กPeek→ รับองค์ประกอบด้านบนของสแต็กLength→ คืนค่าความยาวของสแตกSearch→ ค้นหาองค์ประกอบในสแต็กIsEmpty→ ตรวจสอบว่าสแต็กว่างเปล่าหรือไม่Print→ พิมพ์องค์ประกอบของสแต็กclass Stack {
constructor(){
this.data = [];
this.top = 0;
}
}
เมื่อเราpushเป็นองค์ประกอบในสแต็ก เราต้องเก็บไว้ในtopตำแหน่งของdataและจำเป็นต้องเพิ่มtopตัวแปรเพื่อให้topจะชี้ไปที่ตำแหน่งว่างถัดไป
push(element) {
this.data[this.top] = element;
this.top = this.top + 1;
}
เพื่อให้ได้ความยาวของสแต็ก เราสามารถคืนtopค่าได้
length() {
return this.top;
}
เพื่อให้ได้peekองค์ประกอบของสแต็ก เราสามารถใช้top-1แอตทริบิวต์ของStackคลาส:
peek() {
return this.data[this.top -1 ];
}
ถ้าค่าสูงสุดเท่ากับ แสดง0ว่าไม่มีองค์ประกอบในStack.
isEmpty() {
return this.top === 0;
}
เมื่อเราpopเป็นองค์ประกอบจากสแต็ก เราต้องลบองค์ประกอบในtopตำแหน่งของdataและจำเป็นต้องลดค่าtopตัวแปรเพื่อให้topจะชี้ไปที่ตำแหน่งขององค์ประกอบก่อนหน้า
pop() {
this.top = this.top -1;
return this.data.pop(); // removes the last element
}
pop() {
if( this.isEmpty() === false ) {
this.top = this.top -1;
return this.data.pop(); // removes the last element
}
}
function print() {
var top = this.top - 1; // because top points to index where new element to be inserted
while(top >= 0) { // print upto 0th index
console.log(this.data[top]);
top--;
}
}
หากต้องการพิมพ์สแต็กในลำดับย้อนกลับ เราสามารถใช้การเรียกซ้ำ
function reverse() {
this._reverse(this.top - 1 );
}
function _reverse(index) {
if(index != 0) {
this._reverse(index-1);
}
console.log(this.data[index]);
}
ขอบคุณที่อ่าน. ฉันหวังว่าคุณจะชอบสิ่งนี้
เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้
บทนำ โรคหลอดเลือดสมองเป็นเหตุฉุกเฉินทางการแพทย์ที่สามารถส่งผลกระทบต่อทุกคนได้ตลอดเวลา เกิดขึ้นเมื่อการไหลเวียนของเลือดไปยังส่วนหนึ่งของสมองหยุดชะงัก นำไปสู่การสูญเสียการทำงานของสมองอย่างกะทันหัน
เมื่อสัปดาห์ที่แล้วฉันสังเกตเห็นข่าวประชาสัมพันธ์ที่เผยแพร่ผ่าน PressGazette (เว็บไซต์ข่าวของสื่ออังกฤษ) บทความประกาศว่า Acast ซึ่งเป็นบริษัทโฮสติ้งและโฆษณาพอดคาสต์ของ Scandi จะเป็นผู้นำกลุ่มผู้เผยแพร่ "อาจมีอิทธิพลมากที่สุด" ในพอดคาสต์
“หวัดดี Siri เล่น Me Dive โดย Olivia Dean” ในเดือนพฤษภาคม 2021 ฉันเริ่มฝึกงานที่ Future Academy Africa ในเมือง Akure ประเทศไนจีเรีย
หากเราต้องการจะเติบโตบนโลกใบนี้ต่อไป เราจะต้องสนทนาที่อันตราย คนที่ท้าทายสิ่งที่เราทำ สิ่งที่เรากำลังทำ และสิ่งที่เรากำลังจะทำต่อไป (หรือกำลังวางแผนที่จะทำ)
หลังเที่ยงคืน Hayden ขับรถพา Katie กลับไปที่หอพักของวิทยาลัยหลังจากพวกเขาอยู่ด้วยกันในตอนเย็น เธอมีเรียนแต่เช้าและไม่มีเสื้อผ้าเปลี่ยนอีกหลังจากค้างกับเขาเมื่อคืนก่อน