Data Structure & Algorithm(EP.8) — สแต็ก (Stack)

KongRuksiam Studio
2 min readFeb 28, 2024

--

Stack เป็นโครงสร้างข้อมูลที่มีการเก็บข้อมูลแบบลำดับรูปแบบการจัดเก็บข้อมูลใน Stack เป็นรูปแบบ เข้าก่อนออกทีหลัง (Last In , First Out : LIFO) หมายถึง ข้อมูลที่เข้าไปก่อนจะอยู่ด้านล่าง ข้อมูลที่เข้าหลังสุดจะอยู่ด้านบน

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

https://files.codingninjas.in/article_images/stack-in-c-stl-0-1635236798.jpg

การทำงานของสแต็ก (Stack)

  • Push การนำสมาชิกมาใส่ไว้บนสุดของสแต็ก (Top Stack)
  • Pop การนำสมาชิกบนสุดออกไปจากสแต็ก

สร้างสแต็ก(Stack)

class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
class Stack {
constructor(value) {
const newNode = new Node(value);
this.top = newNode;
this.length = 1;
}
printStack() {
let temp = this.top;
while (temp !== null) {
console.log(temp.value);
temp = temp.next;
}
}
}
let myStack = new Stack(3);
console.log(myStack)
  • Push การนำสมาชิกมาใส่ไว้บนสุดของสแต็ก (Top Stack)
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
class Stack {
constructor(value) {
const newNode = new Node(value);
this.top = newNode;
this.length = 1;
}
printStack() {
let temp = this.top;
while (temp !== null) {
console.log(temp.value);
temp = temp.next;
}
}
push(value) {
const newNode = new Node(value);
if (this.length === 0) {
this.top = newNode;
} else {
newNode.next = this.top;
this.top = newNode;
}
this.length++;
return this;
}
}
let myStack = new Stack(3);
myStack.push(2);
myStack.push(1)
console.log(myStack);
  • Pop การนำสมาชิกบนสุดออกไปจากสแต็ก
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
class Stack {
constructor(value) {
const newNode = new Node(value);
this.top = newNode;
this.length = 1;
}
printStack() {
let temp = this.top;
while (temp !== null) {
console.log(temp.value);
temp = temp.next;
}
}
push(value) {
const newNode = new Node(value);
if (this.length === 0) {
this.top = newNode;
} else {
newNode.next = this.top;
this.top = newNode;
}
this.length++;
return this;
}
pop() {
if (this.length === 0) return undefined;
let temp = this.top;
this.top = this.top.next;
temp.next = null;
this.length--;
return temp;
}
}
let myStack = new Stack(3);
myStack.push(2);
myStack.push(1);
myStack.pop()
console.log(myStack);

เนื้อหาที่เกี่ยวข้อง

ช่องทางการสนับสนุน
🎓 คอร์สพัฒนาเว็บด้วย JavaScript 40 Workshop

🌎 ติดตามข่าวสารเพิ่มเติมได้ที่
Facebook | YouTube | TikTok

--

--

KongRuksiam Studio
KongRuksiam Studio

Written by KongRuksiam Studio

เรียนรู้การเขียนโปรแกรมนอกห้องเรียน

No responses yet