SlideShare a Scribd company logo
1 of 25
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

What's hot

โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานPrapatsorn Keawnoun
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงOnpreeya Sahnguansak
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1prapassonmook
 
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5Nuanlaor Nuan
 
50011220013 นำโชค บุญเรือง
50011220013 นำโชค บุญเรือง50011220013 นำโชค บุญเรือง
50011220013 นำโชค บุญเรืองDeawEK
 

What's hot (14)

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

Viewers also liked

โครงสร้างข้อมูลแบบสแต็ก
โครงสร้างข้อมูลแบบสแต็กโครงสร้างข้อมูลแบบสแต็ก
โครงสร้างข้อมูลแบบสแต็กwaradakhantee
 
โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์โครงสร้างแบบอาร์เรย์
โครงสร้างแบบอาร์เรย์waradakhantee
 
การวิเคราะห์อัลกอริทึม
การวิเคราะห์อัลกอริทึมการวิเคราะห์อัลกอริทึม
การวิเคราะห์อัลกอริทึมguestc3a629f6
 
บทที่2 โครงสร้างข้อมูลอาร์เรย์
บทที่2 โครงสร้างข้อมูลอาร์เรย์บทที่2 โครงสร้างข้อมูลอาร์เรย์
บทที่2 โครงสร้างข้อมูลอาร์เรย์tapabnum
 
การจัดเรียงข้อมูล (sorting)
การจัดเรียงข้อมูล (sorting)การจัดเรียงข้อมูล (sorting)
การจัดเรียงข้อมูล (sorting)tumetr
 
PID Control Of Sampled Measurements - Greg McMillan Deminar Series
PID Control Of Sampled Measurements - Greg McMillan Deminar SeriesPID Control Of Sampled Measurements - Greg McMillan Deminar Series
PID Control Of Sampled Measurements - Greg McMillan Deminar SeriesJim Cahill
 
SS - 10 min overview
SS - 10 min overviewSS - 10 min overview
SS - 10 min overviewsseely
 
Dream Analyzer Tool
Dream Analyzer ToolDream Analyzer Tool
Dream Analyzer ToolSteve Bell
 
Differences Between Bw3.5 Bi7.0
Differences Between Bw3.5 Bi7.0Differences Between Bw3.5 Bi7.0
Differences Between Bw3.5 Bi7.0srinath_vj
 
Oxygen analyzers bb fa11 update
Oxygen analyzers bb fa11 updateOxygen analyzers bb fa11 update
Oxygen analyzers bb fa11 updateroachd
 
อัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหาอัลกอริทึมและการวิเคราะห์ปัญหา
อัลกอริทึมและการวิเคราะห์ปัญหาsupatra178
 
Types of Industrial Process Analyzers
Types of Industrial Process AnalyzersTypes of Industrial Process Analyzers
Types of Industrial Process AnalyzersAttiya Rehman
 

Viewers also liked (18)

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

More from Nu_waew

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

More from Nu_waew (9)

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

แสตก