1
แสตก (Stack)
2
สแตก (Stack) คือ โครงสร้างข้อมูลชนิด
หนึ่งที่มีการเก็บข้อมูลแบบเรียงลำาดับ การใส่ข้อมูล
เข้าหรือนำาข้อมูลออกจากสแตกกระทำาที่บริเวณ
เดียวกันซึ่งเรียกว่า ทอป (top) ของสแตกและ
ลักษณะที่สำาคัญคือ
ข้อมูลที่ใส่หลังสุด จะถูกนำาออกมาจากสแตกเป็น
ลำาดับแรกสุด (last in, first out หรือ LIFO)
การดำาเนินงานของสแตก
ะกอบด้วยกระบวนงานหลัก 2 กระบวนงานคือ
พุช (push)
พอพ (pop)
3
push คือ การนำาข้อมูลใส่ลงไปในส
แตก s เมื่อต้องการใส่ข้อมูล i ในสแตกดังนั้น
การดำาเนินงานของกระบวนงาน push(s,i) คือ
ใส่ ข้อมูล i ลงไปที่ทอปของสแตก s
pop คือ การนำาข้อมูลออกจากส่วนบน
สุดของสแตก และนำาค่านี้ไปใส่ในตัวแปร i
สามารถเขียนด้วยคำาสั่ง i = pop(s)
การดำาเนินการกับสแตก
การเพิ่มข้อมูลลงสแตก เรียกว่า push
เช่น push(A) หมายถึงนำา A ใส่ลงสแตก
push(N) หมายถึงนำา N ใส่ลงสแตก
A
Ntop
Top เป็นตัวชี้ตำาแหน่งของสมาชิกตัวบนสุดของสแตก
การดำาเนินการกับสแตก (ต่อ)
การนำาข้อมูลออกจากสแตก เรียกว่า pop
เช่น pop() หมายถึง นำาสมาชิกตัวบนสุดออก
จากสแตก
A
Ntop
Atop
ก่อน pop() หลัง pop()
การ Implement สแตก
Implement ด้วยอาร์เรย์
Implement ลิงค์ลิสต์
การ implement Stack ทำาได้ 2 วิธี
คือ
1. Array Implementation
2. Linked List Implementation
การ Implement สแตกด้วยอาร์เรย์
ข้อจำากัดของอาร์เรย์ คือ จำานวนสมาชิก จำากัด
ตามขนาดของอาร์เรย์
เช่น ถ้าใช้อาร์เรย์ขนาด 10 ช่อง แทน สแตก
จำานวนสมาชิกสูงสุดของ สแตกจะถูกจำากัดแค่ 10
ตัว ไม่สามารถใส่ตัวที่ 11 , 12 ลงไปได้
ซึ่งจะส่งผลต่อ อัลกอริทึม push ในการเพิ่มข้อ
มูลลงสแตก
ส่วนการนำาข้อมูลออกจากสแตก ถ้าสแตกว่าง
(อาร์เรย์ยังไม่มีข้อมูล) ก็จะไม่สามารถ pop ได้
เพราะไม่มีข้อมูลให้ pop
โครงสร้างข้อมูลสแตกโครงสร้างข้อมูลสแตก (Stack)(Stack)
โครงสร้างข้อมูลสแตกโครงสร้างข้อมูลสแตก (Stack)(Stack)
ในการใช้งานโครงสร้างข้อมูลที่เปิด
ปลายเพียงด้านเดียว การดำาเนินการกับข้อมูล
ในโครงสร้างสามารถกระทำาได้เพียงปลาย
ข้างหนึ่งเท่านั้น ข้อมูลที่ถูกบรรจุอยู่ใน
โครงสร้างดังกล่าว ตัวแรกไม่สามารถถูกดึง
ข้อมูลออกจากโครงสร้างได้ถ้าข้อมูลตัวที่เข้า
มาในลำาดับหลังยังไม่ถูกดึงออกไปก่อน
โครงสร้างข้อมูลที่มีลักษณะดังกล่าวนี้ ไม่
สามารถใช้งานโครงสร้างอาร์เรย์ (Array)
ทั่วไปได้ จึงมีการใช้โครงสร้างข้อมูลที่เรียก
ว่า โครงสร้างข้อมูลสแตก (Stack) มาแทน
ลักษณะของโครงสร้างข้อมูลสแตกลักษณะของโครงสร้างข้อมูลสแตก
(Stack)(Stack)โครงสร้างข้อมูลแบบสแตก (Stack)
เป็นโครงสร้างข้อมูลแบบรายการเชิงเส้น
(Linear List) ที่มีลักษณะที่สำาคัญคือ การนำา
ข้อมูลเข้าสู่สแตก (Insertion : บางครั้งอาจ
เรียกว่า Pushing) และการนำาข้อมูลออกจาก
สแตก (Deletion บางครั้งเรียกว่า
Popping) สามารถกระทำาได้เพียงปลายด้าน
เดียวของโครงสร้างเท่านั้น โดยข้อมูลที่
เข้าไปเก็บทีหลังจะถูกนำาออกมาใช้งานก่อน
จะเรียกลักษณะแบบนี้ว่า เข้าหลังออกก่อน
(Last In First Out : LIFO)
ลักษณะของโครงสร้างข้อมูลสแตกลักษณะของโครงสร้างข้อมูลสแตก
(Stack)(Stack)
โครงสร้างของสแตก
ลักษณะของโครงสร้างข้อมูลสแตกลักษณะของโครงสร้างข้อมูลสแตก
(Stack)(Stack)
ลักษณะของสแตกในชีวิตประจำาวัน
การแทนโครงสร้างข้อมูลสแตกการแทนโครงสร้างข้อมูลสแตก
(Stack)(Stack)
โครงสร้างข้อมูลแบบสแตกสามารถ
แทนได้ด้วยโครงสร้างข้อมูลอาร์เรย์ (Array)
แต่กำาหนดวิธีการเข้าถึงข้อมูลในอาร์เรย์นั้น
ตามกฏเกณฑ์ของสแตก คือ เข้าหลังออกก่อน
(Last In First Out : LIFO) ดังนั้นการเข้า
ถึงข้อมูลในโครงสร้างสแตกจะต้องอาศัย
พอยน์เตอร์ (Pointer) ซึ่งทำาหน้าที่ชี้
ตำาแหน่งของข้อมูลตัวสุดท้ายของสแตก
A
B
C
D
E Pointe
r
การแทนโครงสร้างข้อมูลสแตกการแทนโครงสร้างข้อมูลสแตก
(Stack)(Stack)
โครงสร้างอาร์เรย์ (Array)
…
1 2 9
9
10
0
8 …
8 2
0
…
8 2
0
6 …
1
2
3
Point
er
Stack[
100]
แสดงโครงสร้างข้อมูลสแตกด้วยอาร์เรย์ Stack[100]
การแทนโครงสร้างข้อมูลสแตกการแทนโครงสร้างข้อมูลสแตก
(Stack)(Stack)
การดำาเนินการกับโครงสร้างข้อมูลสการดำาเนินการกับโครงสร้างข้อมูลส
แตกแตก (Stack)(Stack)
มีอยู่ 3 กระบวนการ คือ
1. การสร้างสแตก
2. การเพิ่มข้อมูลเข้าสแตก (Insertion
หรือ Pushing)
3. การลบข้อมูลในสแตก (Deletion
หรือ Popping)
ค่าที่เกี่ยวข้องกับโครงสร้างข้อมูลสค่าที่เกี่ยวข้องกับโครงสร้างข้อมูลส
แตกแตก
1. สแตกพอยน์เตอร์ (Stack Pinter :
SP) เป็นตัวชี้ข้อมูลค่าที่อยู่บนสุดของสแตก
(Top of Stack)
2. พุช (Push) เป็นการกระทำาเพื่อนำา
ข้อมูลเข้าสู่สแตก เมื่อสแตกเต็มแล้ว หากมี
การนำาข้อมูลเข้าสู่สแตกอีกจะเกิดข้อผิดพลาด
ที่เรียกว่า โอเวอร์โฟลว์ (Over flow) ขึ้น
3. ป๊อบ (Pop) เป็นการกระทำาเพื่อนำา
ข้อมูลที่อยู่บนสุดออกมาจากโครงสร้างสแตก
เมื่อนำาข้อมูลค่าสุดท้ายออกจากสแตกแล้วจะ
ทำาให้สแตกว่างเปล่า (Empty) ได้ หากมีการ
ลักษณะการทำางานของโครงสร้างข้อลักษณะการทำางานของโครงสร้างข้อ
มูลสแตกมูลสแตก (Stack)(Stack)
Q
A
Q A
Q
(Empty)
Push box Q
onto empty
stack
Push box A
onto stack
Pop box A
from stack
Pop box Q
from stack
Pushing and Popping a stack
R
D
M
D
M
Push box R
onto empty
stack
Push box D
onto stack
Push box M
onto stack
Pop box M
from stack
ลักษณะการทำางานของโครงสร้างข้อลักษณะการทำางานของโครงสร้างข้อ
มูลสแตกมูลสแตก (Stack)(Stack)
Pushing and Popping a stack (Continue)
Q
S
Push box Q
onto stack
Push box S
onto stack
ลักษณะการทำางานของโครงสร้างข้อลักษณะการทำางานของโครงสร้างข้อ
มูลสแตกมูลสแตก (Stack)(Stack)
Pushing and Popping a stack (Continue)
ลักษณะการทำางานของโครงสร้างข้อลักษณะการทำางานของโครงสร้างข้อ
มูลสแตกมูลสแตก (Stack)(Stack)
Stack frames for subprogram calls
ตัวอย่าง โครงสร้างสแตกในชีวิตประจำาวัน
คุณลักษณะของสแตก
o การนำาข้อมูลเข้าและออกจากสแตกจะกระทำาที่
ปลายข้างเดียวเท่านั้น
o การทำางานของสแตกจะมีลักษณะแบบ เข้าหลัง
ออกก่อน (LIFO: Last In, First Out)
o ตัวอย่างการทำางานแบบ LIFO เช่น การวางจาน
ซ้อนกัน
ประโยชน์ของสแตก
o เพื่อแปลงนิพจน์ทางคณิตศาสตร์
o การจัดลำาดับการทำางานแบบ
recursive หรือการเรียกใช้ฟังก์ชัน
o เป็นกลไกสำาคัญในการทำางานของ
compiler เช่น การตรวจสอบ
เครื่องหมาย { } ในภาษาซี หรือการ
ตรวจสอบเครื่องหมายวงเล็บ
25
จบการนำา
เสนอค่ะ

More Related Content

PPT
สแตกและคิว (Stack & queue)
PPT
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
PDF
Present Unit 5-6 (BC0212)
PPT
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 09
PPT
2การแสดงผลและการรับข้อมูล
PDF
Database101
PPTX
ข้อมูลชนิดอาร์เรย์และสตริง
PDF
Rppt258 march62016
สแตกและคิว (Stack & queue)
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
Present Unit 5-6 (BC0212)
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 09
2การแสดงผลและการรับข้อมูล
Database101
ข้อมูลชนิดอาร์เรย์และสตริง
Rppt258 march62016

What's hot (14)

PPTX
โปรแกรมย่อยและฟังก์ชัน
PDF
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
PPT
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
PPT
บทที่1
PDF
งานนำเสนอ1
PPTX
Microsoft excel
PDF
ตัวแปรและคำสงวน
PDF
3.2 ตัวแปรและคำสงวน
PDF
Dbchapter4-1
PDF
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
PPTX
50011220013 นำโชค บุญเรือง
โปรแกรมย่อยและฟังก์ชัน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่1
งานนำเสนอ1
Microsoft excel
ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน
Dbchapter4-1
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
50011220013 นำโชค บุญเรือง
Ad

Viewers also liked (18)

PPTX
โครงสร้างข้อมูลแบบสแต็ก
PPTX
โครงสร้างแบบอาร์เรย์
PPT
การวิเคราะห์อัลกอริทึม
PPT
บทที่2 โครงสร้างข้อมูลอาร์เรย์
PDF
Array
PPT
การจัดเรียงข้อมูล (sorting)
PPSX
Intel VTune
PPT
Data struct is_chapter1
PPT
PID Control Of Sampled Measurements - Greg McMillan Deminar Series
PPTX
SS - 10 min overview
PPT
Dream Analyzer Tool
PPT
Differences Between Bw3.5 Bi7.0
PPT
Oxygen analyzers bb fa11 update
PPT
อัลกอริทึมและการวิเคราะห์ปัญหา
PPS
Oxygen Analyzer
PPTX
Automation
PPTX
Types of Industrial Process Analyzers
โครงสร้างข้อมูลแบบสแต็ก
โครงสร้างแบบอาร์เรย์
การวิเคราะห์อัลกอริทึม
บทที่2 โครงสร้างข้อมูลอาร์เรย์
Array
การจัดเรียงข้อมูล (sorting)
Intel VTune
Data struct is_chapter1
PID Control Of Sampled Measurements - Greg McMillan Deminar Series
SS - 10 min overview
Dream Analyzer Tool
Differences Between Bw3.5 Bi7.0
Oxygen analyzers bb fa11 update
อัลกอริทึมและการวิเคราะห์ปัญหา
Oxygen Analyzer
Automation
Types of Industrial Process Analyzers
Ad

More from Nu_waew (9)

DOCX
บทที่ 2
DOCX
บทที่ 1
DOCX
บทที่ 4
DOCX
บทที่ 3
PDF
ประว ต
PDF
หน่วยที่ 4 การเเทรกมัลติมีเดียและการเชื่อมโยงหลายมิติ
PDF
หน่วยที่ 3 การตกเเต่งงานนำเสนอด้วยภาพ
PPTX
หน่วยที่ 2 เริ่มต้นสร้างงานนำเสนอ
PPTX
หน่วยที่ 1 รู้จักกับโปรแกรม microsoft office power point 2007
บทที่ 2
บทที่ 1
บทที่ 4
บทที่ 3
ประว ต
หน่วยที่ 4 การเเทรกมัลติมีเดียและการเชื่อมโยงหลายมิติ
หน่วยที่ 3 การตกเเต่งงานนำเสนอด้วยภาพ
หน่วยที่ 2 เริ่มต้นสร้างงานนำเสนอ
หน่วยที่ 1 รู้จักกับโปรแกรม microsoft office power point 2007

แสตก