ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
ลักษณะการทำงานของ Stack
กองซ้อน Push Operation Pop Operation
2
Stack ? โครงสร้างข้อมูลเชิงเส้น (Linear) แบบกองซ้อน ที่โครงสร้างหนึ่ง สามารถเก็บข้อมูลได้หลายค่า การเพิ่มหรือการลบข้อมูล จะเกิดขึ้นที่ปลายทางด้านใด ด้านหนึ่งของข้อมูลเท่านั้น Push Pop Push แสดงภาพแนวนอน แสดงภาพแนวตั้ง Pop
3
Stack ? ข้อมูลที่ถูกจัดวางก่อนจะถูกเรียกใช้ทีหลัง ตาม ความสัมพันธ์แบบ Last In First Out:: LIFO มีการกระทำ (Operations) ที่จัดการข้อมูลอยู่2 ตัว คือการนำข้อมูลเข้า(Push ) และออก(Pop) Stack มีขนาดจำกัด และไม่จำกัดขึ้นอยู่กับวิธีการสร้าง
4
ตัวอย่าง การวางและหยิบจาน จากจานที่ตั้งเป็นชั้น การเก็บรถเข็นในห้าง
การวางและหยิบจาน จากจานที่ตั้งเป็นชั้น การเก็บรถเข็นในห้าง LIFO ( Last In First Out) ข้อมูลที่ถูกนำเข้าไปใส่ใน Stack ก่อน จะถูกนำออกจาก Stack ที่หลัง
5
Push(ตัวแปร Stack, ข้อมูล)
Stack’s Operations Push(ตัวแปร Stack, ข้อมูล) การแทรก หรือ เพิ่มสมาชิก เข้าไปใน Stack Pop(ตัวแปร Stack, ข้อมูล) การลบ หรือนำสมาชิก ออกจาก Stack การกระทำ Push หรือ Pop แต่ละครั้งจะกระทำกับข้อมูลหรือสมาชิกได้เพียง 1 ตัวเท่านั้น
6
LIFO ( Last In First Out)
Top of Stack Bottom of Stack
7
Max Size = 8 Top =2 Top =1 Top =0
Push(Stack, “A”) Push(Stack, “B”) Top =2 B A Top =1 A Top =0 Stack Empty
8
การโปรแกรมแบบรีเคอร์ซีฟ (Recursive Programming)
9
2.การประมวลผลโปรแกรมแบบ Recursive
โปรแกรมเรียกใช้ตัวเอง คล้ายกับการเรียกใช้ฟังก์ชัน เพียงแต่เรียกฟังก์ชันที่มีชื่อตนเองเท่านั้น ทุกๆ ครั้งที่มีการเรียกใช้ตัวเอง จะเก็บข้อมูลไว้ใน Stack ก่อนเสมอ #include <iostream.h> int Factorial( int n ){ int fact; if (n == 0) fact = 1; else fact = n * Factorial (n-1); return fact; } void main(){ int n; cout << "Enter Number : "; cin >> n; cout << "Factorial " <n<< " = "<< Factorial(n);
10
ตัวอย่างการ Recursive
Factorial(0) Factorial(1) Factorial(2) Factorial(3) Factorial(4)
11
ตัวอย่างการ Recursive
Factorial(0) Factorial(1) Factorial(2) Factorial(3) Factorial(4)
21
Factorial := 3 * factorial(3-1)
Y := Factorial(3); Factorial := 3 * factorial(3-1) 3
22
Factorial := 2 * factorial(2-1)
Y := Factorial(2); Factorial := 2 * factorial(2-1) 2 3
23
Factorial := 1 * factorial(1-1)
Y := Factorial(1); Factorial := 1 * factorial(1-1) 1 2 3
24
Y := Factorial(0); Factorial := 1 1 2 3
25
Factorial(1) := 1 * factorial(0)
Return 1 Factorial := 1*1 2 3
26
Factorial(2) := 2 * factorial(1)
Return 2 Factorial := 1*2 3
27
Factorial(3) := 3 * factorial(2)
Return 3 Factorial := 2*3
28
Y :=6
29
1. จงเขียนโปรแกรม Recursive ในการหาเทอมของอนุกรม Fibonacci Sequence จำนวน N เทอม โดยป้อนจำนวนเต็ม N เข้าไป แล้วแสดงผลอนุกรมดังกล่าว T(1) = 0 T(2) = 1 T(N) = T(n-2) + T(n-1) Lab3-1.cpp ตัวอย่าง Output Enter Term of Fibonacci : 10
30
2. จงเขียนโปรแกรม Recursive ในการหาค่าของ Xn เทอม โดยป้อนค่าของ X และจำนวนเต็ม N เข้าไป แล้วแสดงผลค่าผลลัพธ์ดังกล่าว X0 = 1 Xn = X * Xn-1 Lab3-2.cpp ตัวอย่าง Output Enter Number : 2 Enter Power : 5 Power 2 of 5 = 32
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.