งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

ลักษณะการทำงานของ Stack

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "ลักษณะการทำงานของ Stack"— ใบสำเนางานนำเสนอ:

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)

12

13

14

15

16

17

18

19

20

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


ดาวน์โหลด ppt ลักษณะการทำงานของ Stack

งานนำเสนอที่คล้ายกัน


Ads by Google