โครงสร้างข้อมูล Stack เป็น Last In First Out สแต็กถูกใช้ในพื้นที่ที่แตกต่างกันสำหรับการประเมินนิพจน์ กลยุทธ์การโทรและการเรียกซ้ำ ฯลฯ สแต็กมีการดำเนินการพื้นฐานบางอย่าง ในที่นี้ เราจะเห็นการดำเนินการของ stack และดูตัวอย่างการใช้ stack ADT
ADT (ประเภทข้อมูลนามธรรม) เป็นประเภทข้อมูลพิเศษ ซึ่งพฤติกรรมถูกกำหนดโดยชุดของค่าและชุดของการดำเนินการ มีการใช้คำหลัก "บทคัดย่อ" เนื่องจากเราสามารถใช้ประเภทข้อมูลเหล่านี้ เราสามารถดำเนินการต่างๆ ได้ แต่การดำเนินการเหล่านั้นทำงานอย่างไรซึ่งถูกซ่อนจากผู้ใช้โดยสิ้นเชิง ADT ประกอบด้วยประเภทข้อมูลดั้งเดิม แต่ตรรกะการทำงานถูกซ่อนไว้
นี่เป็นการดำเนินการหรือฟังก์ชันบางอย่างของ Stack ADT
- isFull() ใช้ตรวจสอบว่า stack เต็มหรือไม่
- isEmpry() ใช้ตรวจสอบว่า stack ว่างหรือไม่
- push(x) ใช้สำหรับผลัก x เข้าไปใน stack
- pop() ใช้เพื่อลบหนึ่งองค์ประกอบออกจากด้านบนของสแต็ก
- peek() ใช้เพื่อรับองค์ประกอบสูงสุดของสแต็ก
- size() ฟังก์ชันนี้ใช้เพื่อรับจำนวนองค์ประกอบที่มีอยู่ในสแต็ก
ตัวอย่าง
#include<iostream> #include<stack> using namespace std; main(){ stack<int> stk; if(stk.empty()){ cout << "Stack is empty" << endl; } else { cout << "Stack is not empty" << endl; } //insert elements into stack stk.push(10); stk.push(20); stk.push(30); stk.push(40); stk.push(50); cout << "Size of the stack: " << stk.size() << endl; //pop and dispay elements while(!stk.empty()) { int item = stk.top(); // same as peek operation stk.pop(); cout << item << " "; } }
ผลลัพธ์
Stack is empty Size of the stack: 5 50 40 30 20 10