ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Data structure & Algorithms
Stack Data structure & Algorithms
2
Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last-In, First-Out)
Stack Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last-In, First-Out) Operations พื้นฐานของ Stack ได้แก่ - การนำข้อมูลเข้าสู่ Stack เรียกว่า Push - การนำข้อมูลออกจาก Stack เรียกว่า Pop - การเรียกใช้ข้อมูลจาก Stack เรียกว่า Top การสร้าง Stack - ใช้ Array แทน Stack - ใช้ Linked list แทน Stack Company Logo
3
Stack Company Logo
4
เพิ่มข้อมูลใน Stack: Push
เพิ่มข้อมูลใน Stack: Push Company Logo
5
นำข้อมูลออกจาก Stack : Pop
นำข้อมูลออกจาก Stack : Pop Company Logo
6
เรียกใช้ข้อมูลใน Stack: Top
เรียกใช้ข้อมูลใน Stack: Top Company Logo
7
Company Logo
8
Company Logo
9
Linked list แทน Stack Company Logo
10
Linked list แทน Stack Company Logo
11
Company Logo
12
Company Logo
13
Operations พื้นฐานของ Stack ที่สร้างด้วย Linked list
Operations พื้นฐานของ Stack ที่สร้างด้วย Linked list 1. Create stack: สร้าง stack head node 2. Push stack: เพิ่มรายการใน stack 3. Pop stack: ลบรายการใน stack 4. Stack top: เรียกใช้รายการข้อมูลที่อยู่บนสุดของ stack 5. Empty stack: ตรวจสอบว่า stack ว่างเปล่าหรือไม่ 6. Full stack: ตรวจสอบว่า stack เต็มหรือไม่ 7. Stack count: ส่งค่าจำนวนรายการใน stack 8. Destroy stack: คืนหน่วยความจำของทุก node ใน stack ให้ระบบ Company Logo
14
Stack Applications: Balancing Symbols
Company Logo
15
The conversion time is O(n)
Stack Applications: Infix to Postfix conversion The conversion time is O(n) Company Logo
16
Postfix expression evaluation
The evaluation time is O(n) Company Logo
17
Backtracking Backtracking คือวิธีการหาคำตอบโดยเดินหน้าไปยังเป้าหมาย เมื่อถึงทางแยกก็จะต้องตัดสินใจเลือกเส้นทางใดเส้นทางหนึ่งเดินหน้าต่อไปเพื่อหาเป้าหมาย หากเดินไปจนสุดเส้นทางแล้วยังไม่พบเป้า ก็จะเดินย้อนกลับมายังจุดแยกครั้งสุดท้ายแล้วเลือกเส้นทางใหม่ที่ยังไม่เคยไป ทำเช่นนี้ไปเรื่อยๆจนกว่าจะพบเป้าหมาย หรือจนครบทุกเส้นทาง Backtracking เป็นการประยุกต์ใช้โครงสร้างข้อมูลแบบ Stack สำหรับการเขียนโปรแกรมประเภทเกมส์คอมพิวเตอร์ (computer gaming) การวิเคราะห์การตัดสินใจ(decision analysis) และระบบผู้เชี่ยวชาญ(expert system) ตัวอย่างปัญหาที่ใช้วิธี Backtracking เช่นปัญหาการค้นหาเป้าหมาย (goal seeking) และ ปัญหา 8 ราชินี (eight queens problem) Company Logo
18
Stack Applications: Backtracking
Company Logo
19
Stack Applications: Backtracking
Company Logo
20
Stack Applications: Backtracking
Company Logo
21
Stack Applications: Backtracking
Company Logo
22
Data structure & Algorithms
Queue Data structure & Algorithms
23
Queue Queue เป็นโครงสร้างข้อมูลแบบ FIFO (First-In, First-Out)
Queue Queue เป็นโครงสร้างข้อมูลแบบ FIFO (First-In, First-Out) Operations พื้นฐานของ Queue ได้แก่ - การนำข้อมูลเข้าสู่ Queue เรียกว่า Enqueue - การนำข้อมูลออกจาก Queue เรียกว่า Dequeue - การเรียกใช้ข้อมูลจากหัวแถวของ Queue เรียกว่า Front - การเรียกใช้ข้อมูลจากท้ายแถวของ Queue เรียกว่า Rear การสร้าง Queue - ใช้ Array แทน queue - ใช้ Linked list แทน queue Company Logo
24
The Queue concept Company Logo
25
Operation Enqueue Company Logo
26
Operation Dequeue Company Logo
27
Operation QueueFront Company Logo
28
Figure 5-5 Operation QueueRear Company Logo
29
Figure 5-6 Queue Operations Company Logo
30
Queue Operations Company Logo
31
โครงสร้างของ Queue แบบ Array
โครงสร้างของ Queue แบบ Array Company Logo
32
Is queue full? Company Logo
33
Circular Queue Company Logo
34
โครงสร้างของ Queue แบบ Linked list
โครงสร้างของ Queue แบบ Linked list Company Logo
35
Queue data structure Company Logo
36
Algorithm พื้นฐานของ Queue
Algorithm พื้นฐานของ Queue 1. Create queue: สร้าง queue head จาก dynamic memory 2. Enqueue: เพิ่มรายการเข้าไปใน queue 3. Dequeue: ลบรายการออกจาก queue 4. Queue front: เรียกใช้ข้อมูลที่ด้านหน้าของ queue 5. Queue rear: เรียกใช้ข้อมูลที่ด้านหน้าของ queue 6. Empty queue: ตรวจสอบว่า queue ว่างหรือไม่ 7. Full queue: ตรวจสอบว่า queue เต็มหรือไม่ (มีหน่วยความจำ จัดให้ได้หรือไม่) 8. Queue count: บอกจำนวนรายการใน queue 9. Destroy queue: ลบข้อมูลทั้งหมดใน queue และคืนหน่วยความจำ ให้ระบบแล้วลบและคืนหน่วยความจำของ head node Company Logo
37
Create and enqueue Company Logo
38
Company Logo
39
เพิ่มข้อมูลเข้า Queue
เพิ่มข้อมูลเข้า Queue Company Logo
40
ลบข้อมูลออกจากเข้า Queue
ลบข้อมูลออกจากเข้า Queue Company Logo
41
อักขระย่อย1.อักขระย่อย2
Queue Application การเขียนฟังก์ชันชื่อ matching เพื่ออ่านอักขระจากแป้นพิมพ์ แล้วทำการตรวจสอบดูว่า อักขระที่อ่านมานั้น อักขระทุกตัวก่อนหน้าจุดและอักขระทุกตัวที่อยู่หลังจุด เหมือนกันหรือไม่ ถ้าเหมือนกันฟังก์ชันจะส่งคืนค่า 1 มิฉะนั้นจะคืนค่า 0 โดยลักษณะของอักขระที่อ่านจากแป้นพิมพ์ มีดังนี้ อักขระย่อย1.อักขระย่อย2 โดยที่อักขระย่อยก่อนหน้าจุดและอักขระย่อยหลังจุดมีขนาดความยาวเท่ากัน Company Logo
42
while((c1=getchar()) != '.') enq(queue, c1); match = 1;
int matching() { char c1, c2; QueueType queue; int match; clearQ(queue); while((c1=getchar()) != '.') enq(queue, c1); match = 1; while(!emptyQ(queue)&& match) { c1 = deq(queue); c2 = getchar(); if (c2 != c1) match = 0; } return (match); Company Logo
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.