Data structure & Algorithms

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Bansomdej Chaopraya Rajabhat University
Advertisements

จงเขียนโปรแกรมในการคำนวณหาค่า function ข้างล่างโดยอาศัยหลักการ
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
Course Orientation Data Structure and Algorithms ( )
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
บทที่ 5 โครงสร้างข้อมูลคิว
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Data Type part.II.
Stack.
Stack Holidays/seasonal content.
บทนำ.
ลักษณะการทำงานของ Stack
บทที่ 2 หลักการแก้ปัญหา
บรรยายครั้งที่ 3: Queue
บรรยายครั้งที่ 2: Stack
Linked-List (รายการโยง)
Week4 Data types, Variables, Operators and Input/output (ต่อ)
คิวQueue Circular Queue.
ฟังก์ชันของ PHP ฟังก์ชันคือ โปรแกรมย่อยที่สามารถประมวลผล และ คืนผลลัพธ์จาการประมวลผลนั้นสู่โปรแกรมหลักได้ ซึ่งจำเป็นในการเขียนโปรแกรมเพื่อช่วยให้การทำงานมีประสิทธิภาพที่สูงขึ้น.
Asst.Prof. Dr.Surasak Mungsing
Infix to Postfix มหาวิทยาลัยเนชั่น หลักการภาษาชุดคำสั่ง
ตัวแปรกับชนิดของข้อมูล
โครงสร้างข้อมูลแบบคิว
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
สแตค(stack) โครงสร้างข้อมูลแบบ Stack - การสร้าง Stack
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
แถวอักขระ (string) ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
Linked List (ลิงค์ลิสต์)
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
บทที่ 5 Link List Link List.
การประมวลผลสายอักขระ
การเขียนโปรแกรมประยุกต์ใช้งาน
Linked List List is group of nodes that consists of data and link.
ลิงค์ลิสต์ (Linked List)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
หลักการเขียนโปรแกรม ( )
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
กองซ้อน ยอดกองซ้อน (stack).
โครงสร้างข้อมูลแบบกองซ้อน (Stack)
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
โครงสร้างข้อมูลแบบรายการโยง (Link List)
Chapter 3 - Stack, - Queue,- Infix Prefix Postfix
รายการโยง (linked lists) หอยทอด 30 ข้าวผัด 30 ไก่ย่าง 50 เนื้อทอด 30
โครงสร้างข้อมูล Queues
โครงสร้างข้อมูลแบบลิงก์ลิสต์
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
หลักการเขียนโปรแกรม ( )
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
โครงสร้างข้อมูลแบบ สแตก (stack)
Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.
Wattanapong suttapak SE, ICT University of Phayao.
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
การประยุกต์ใช้ Stack การประยุกต์ใช้ Stack
รศ. ดร. บุญธีร์ เครือตราชู รศ. กฤตวัน ศิริบูรณ์ KMITL Data Structures & Algorithms : Stack & Queue 1 Stack & Queue Lecturers : Boontee Kruatrachue.
QueueQueue Lecturer : Kritawan Siriboon, Room no. 913 Text : Data Structures & Algorithm Analysis in C, C++,… Mark Allen Weiss, Addison Wesley.
Linked List ( ต่อ ) Lecturer : Kritawan Siriboon, Room no. 913 Text : Data Structures & Algorithm Analysis in C, C++,… Mark Allen Weiss, Addison Wesley.
Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
Queue Lecturer : Kritawan Siriboon, Room no. 913
Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
3 โครงสร้างข้อมูลแบบคิว (QUEUE).
Stack (Push Down Stack)
ใบสำเนางานนำเสนอ:

Data structure & Algorithms Stack Data structure & Algorithms

Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last-In, First-Out) www.themegallery.com Stack Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last-In, First-Out) Operations พื้นฐานของ Stack ได้แก่ - การนำข้อมูลเข้าสู่ Stack เรียกว่า Push - การนำข้อมูลออกจาก Stack เรียกว่า Pop - การเรียกใช้ข้อมูลจาก Stack เรียกว่า Top การสร้าง Stack - ใช้ Array แทน Stack - ใช้ Linked list แทน Stack Company Logo

www.themegallery.com Stack Company Logo

เพิ่มข้อมูลใน Stack: Push www.themegallery.com เพิ่มข้อมูลใน Stack: Push Company Logo

นำข้อมูลออกจาก Stack : Pop www.themegallery.com นำข้อมูลออกจาก Stack : Pop Company Logo

เรียกใช้ข้อมูลใน Stack: Top www.themegallery.com เรียกใช้ข้อมูลใน Stack: Top Company Logo

www.themegallery.com Company Logo

www.themegallery.com Company Logo

www.themegallery.com Linked list แทน Stack Company Logo

www.themegallery.com Linked list แทน Stack Company Logo

www.themegallery.com Company Logo

www.themegallery.com Company Logo

Operations พื้นฐานของ Stack ที่สร้างด้วย Linked list www.themegallery.com 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

Stack Applications: Balancing Symbols www.themegallery.com Company Logo

The conversion time is O(n) www.themegallery.com Stack Applications: Infix to Postfix conversion The conversion time is O(n) Company Logo

Postfix expression evaluation www.themegallery.com The evaluation time is O(n) Company Logo

www.themegallery.com Backtracking Backtracking คือวิธีการหาคำตอบโดยเดินหน้าไปยังเป้าหมาย เมื่อถึงทางแยกก็จะต้องตัดสินใจเลือกเส้นทางใดเส้นทางหนึ่งเดินหน้าต่อไปเพื่อหาเป้าหมาย หากเดินไปจนสุดเส้นทางแล้วยังไม่พบเป้า ก็จะเดินย้อนกลับมายังจุดแยกครั้งสุดท้ายแล้วเลือกเส้นทางใหม่ที่ยังไม่เคยไป ทำเช่นนี้ไปเรื่อยๆจนกว่าจะพบเป้าหมาย หรือจนครบทุกเส้นทาง Backtracking เป็นการประยุกต์ใช้โครงสร้างข้อมูลแบบ Stack สำหรับการเขียนโปรแกรมประเภทเกมส์คอมพิวเตอร์ (computer gaming) การวิเคราะห์การตัดสินใจ(decision analysis) และระบบผู้เชี่ยวชาญ(expert system) ตัวอย่างปัญหาที่ใช้วิธี Backtracking เช่นปัญหาการค้นหาเป้าหมาย (goal seeking) และ ปัญหา 8 ราชินี (eight queens problem) Company Logo

Stack Applications: Backtracking www.themegallery.com Company Logo

Stack Applications: Backtracking www.themegallery.com Company Logo

Stack Applications: Backtracking www.themegallery.com Company Logo

Stack Applications: Backtracking www.themegallery.com Company Logo

Data structure & Algorithms Queue Data structure & Algorithms

Queue Queue เป็นโครงสร้างข้อมูลแบบ FIFO (First-In, First-Out) www.themegallery.com 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

www.themegallery.com The Queue concept Company Logo

www.themegallery.com Operation Enqueue Company Logo

www.themegallery.com Operation Dequeue Company Logo

www.themegallery.com Operation QueueFront Company Logo

Figure 5-5 www.themegallery.com Operation QueueRear Company Logo

Figure 5-6 www.themegallery.com Queue Operations Company Logo

www.themegallery.com Queue Operations Company Logo

โครงสร้างของ Queue แบบ Array www.themegallery.com โครงสร้างของ Queue แบบ Array Company Logo

www.themegallery.com Is queue full? Company Logo

www.themegallery.com Circular Queue Company Logo

โครงสร้างของ Queue แบบ Linked list www.themegallery.com โครงสร้างของ Queue แบบ Linked list Company Logo

www.themegallery.com Queue data structure Company Logo

Algorithm พื้นฐานของ Queue www.themegallery.com 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

www.themegallery.com Create and enqueue Company Logo

www.themegallery.com Company Logo

เพิ่มข้อมูลเข้า Queue www.themegallery.com เพิ่มข้อมูลเข้า Queue Company Logo

ลบข้อมูลออกจากเข้า Queue www.themegallery.com ลบข้อมูลออกจากเข้า Queue Company Logo

อักขระย่อย1.อักขระย่อย2 www.themegallery.com Queue Application การเขียนฟังก์ชันชื่อ matching เพื่ออ่านอักขระจากแป้นพิมพ์ แล้วทำการตรวจสอบดูว่า อักขระที่อ่านมานั้น อักขระทุกตัวก่อนหน้าจุดและอักขระทุกตัวที่อยู่หลังจุด เหมือนกันหรือไม่ ถ้าเหมือนกันฟังก์ชันจะส่งคืนค่า 1 มิฉะนั้นจะคืนค่า 0 โดยลักษณะของอักขระที่อ่านจากแป้นพิมพ์ มีดังนี้ อักขระย่อย1.อักขระย่อย2 โดยที่อักขระย่อยก่อนหน้าจุดและอักขระย่อยหลังจุดมีขนาดความยาวเท่ากัน Company Logo

while((c1=getchar()) != '.') enq(queue, c1); match = 1; www.themegallery.com 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