โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top of Stack) เรียกว่าตัวชี้สแตก(Stack Pointer) มีรูปแบบเป็น Top(Y)
ให้ Y เป็นสแตกเก็บค่าตัวเลขได้ไม่เกิน 6 ตัว Push(‘2’),Push(‘5’),Push(‘3’) Pop(),Push(‘9’), Push(‘0’) Push(‘4’) Push(‘6’),Pop()
เริ่มต้นจากการสร้างสแตก Yขึ้นมาทำงานจำได้สแตกว่าง ไม่มีสมาชิกโดยตัวชี้สแตก Top ยังไม่มีค่า
นำค่า 2 เข้ามาเก็บเป็นตัวแรกโดยใช้ Push(‘2’) สแตก Y=[2] ตัวชี้สแตก Top = 2 Top
นำค่า 5 เก็บต่อโดยใช้ Push(‘5’) สแตก Y=[2,5] ตัวชี้สแตก Top = 5 Top
นำค่า 3 เก็บต่อโดยใช้ Push(‘3’) สแตก Y=[2,5,3] ตัวชี้สแตก Top = 3
ต้องการดึงค่าออกมาโดยใช้Pop() 2 5 ต้องการดึงค่าออกมาโดยใช้Pop() สแตก Y=[2,5] ตัวชี้สแตก Top = 5 Top
นำค่า 9 เก็บต่อโดยใช้ Push(‘9’) สแตก Y=[2,5,9] ตัวชี้สแตก Top = 9
นำค่า 0 เก็บต่อโดยใช้ Push(‘0’) สแตก Y=[2,5,9,0] ตัวชี้สแตก นำค่า 0 เก็บต่อโดยใช้ Push(‘0’) สแตก Y=[2,5,9,0] ตัวชี้สแตก Top = 0 Top
นำค่า 4 เก็บต่อโดยใช้ Push(‘4’) สแตก Y=[2,5,9,0,4] ตัวชี้สแตก 4 นำค่า 4 เก็บต่อโดยใช้ Push(‘4’) สแตก Y=[2,5,9,0,4] ตัวชี้สแตก Top = 4 Top
นำค่า 6 เก็บต่อโดยใช้ Push(‘6’) สแตก Y=[2,5,9 4 6 นำค่า 6 เก็บต่อโดยใช้ Push(‘6’) สแตก Y=[2,5,9 0,4,6] ตัวชี้สแตก Top = 6 Top
ต้องการดึงค่าออกมาโดยใช้Pop() 2 5 9 4 ต้องการดึงค่าออกมาโดยใช้Pop() สแตก Y=[2,5,9,0,4] ตัวชี้สแตก Top = 4 Top
อัลกอริทึมการแปลงนิพจน์แบบ Infix เป็นแบบ Postfix โจทย์ 10+5-(8/2)*3
10+5-(8/2)*3 ผลลัพธ์ Stack
10+5-(8/2)*3 ผลลัพธ์ 10 Stack
10+5-(8/2)*3 ผลลัพธ์ 10 + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 ( - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 ( - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 / ( - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / ( - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / ( - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / * - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / 3 * - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / 3 * - + Stack
10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / 3 * - + Stack
คำตอบที่ได้จะอยู่ที่ผลลัพธ์ 10+5-(8/2)*3 ผลลัพธ์ 10 5 8 2 / 3 * - + คำตอบที่ได้จะอยู่ที่ผลลัพธ์ Stack
การหาคำตอบจากการคำนวณนิพจน์ Postfix โจทย์ 78*2/4-
78*2/4- ผลลัพธ์ Stack
78*2/4- ผลลัพธ์ 7 Stack
78*2/4- ผลลัพธ์ 8 7 Stack
78*2/4- ผลลัพธ์ 7 * 8 Stack
78*2/4- ผลลัพธ์ 56 Stack
78*2/4- ผลลัพธ์ 2 56 Stack
78*2/4- ผลลัพธ์ 56 / 2 Stack
78*2/4- ผลลัพธ์ 28 Stack
78*2/4- ผลลัพธ์ 4 28 Stack
78*2/4- ผลลัพธ์ 28 - 4 Stack
คำตอบที่ได้อยู่ที่สแตก 78*2/4- ผลลัพธ์ คำตอบที่ได้อยู่ที่สแตก 24 Stack