โครงสร้างข้อมูล Queues

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Advertisements

DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
Bansomdej Chaopraya Rajabhat University
วิธีการตั้งค่าและทดสอบ เครื่องคอมพิวเตอร์ก่อนใช้งาน
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
Course Orientation Data Structure and Algorithms ( )
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
การซ้อนทับกัน และคลื่นนิ่ง
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon DSP3-1 ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ DSP 6 The Fast.
โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
บทที่ 5 โครงสร้างข้อมูลคิว
แนวทางการรายงานผลการปฏิบัติราชการโดยผ่านระบบเครือข่ายอินเตอร์เน็ต
ระบบสารสนเทศแผนงานบำรุงทาง
การใช้งานโปรแกรม Excel เบื้องต้น
Lecture No. 3 ทบทวนทฤษฎีและแบบฝึกหัด
Stack.
Stack Holidays/seasonal content.
บทนำ.
Data structure & Algorithms
ลักษณะการทำงานของ Stack
การจัดสรรหน่วยประมวลผล (Process Scheduling)
บรรยายครั้งที่ 3: Queue
คิวQueue Circular Queue.
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
กระบวนการคิดทางคณิตศาสตร์
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
บทที่ 2 อาร์เรย์ อาร์เรย์ คือ ชุดของตัวแปรเดียวกัน ซึ่งสมาชิกของอาร์เรย์จะเป็นตัวแปรพื้นฐาน จำนวนสมาชิกในอาร์เรย์มีขนานแน่นอน และสมาชิกของอาร์เรย์แต้ละตัว.
ระบบการเบิก-จ่าย ลูกหนี้เงินยืม
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
โครงสร้างข้อมูลแบบคิว
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
สแตค(stack) โครงสร้างข้อมูลแบบ Stack - การสร้าง Stack
ณัฏฐวุฒิ เอี่ยมอินทร์
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
บทที่ 3 การวิเคราะห์ Analysis.
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การแจกแจงปกติ.
โครงสร้างข้อมูลคืออะไร ?
การดำเนินการทดสอบทางการศึกษาแห่งชาติ (O-NET)
วิชาคอมพิวเตอร์กราฟิก
บทที่ 3 การทำงานกับฟอร์ม (Form)
ลิงค์ลิสต์ (Linked List)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
กองซ้อน ยอดกองซ้อน (stack).
โครงสร้างข้อมูลแบบกองซ้อน (Stack)
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การลงข้อมูลแผนการสอน
ภาษาอังกฤษเพื่อการสื่อสาร อ32204
Chapter 3 - Stack, - Queue,- Infix Prefix Postfix
School of Information Communication Technology,
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
Lesson01 แมวเหมียว การแสดงภาพและเสียง. 1. คลิก New Project.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
แผนการจัดการเรียนรู้
โครงสร้างข้อมูลแบบ สแตก (stack)
การค้นในปริภูมิสถานะ
การแบ่งแยกและเอาชนะ Divide & Conquer
การแบ่งแยกและเอาชนะ Divide & Conquer
QueueQueue Lecturer : Kritawan Siriboon, Room no. 913 Text : Data Structures & Algorithm Analysis in C, C++,… Mark Allen Weiss, Addison Wesley.
Queue Lecturer : Kritawan Siriboon, Room no. 913
Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ใบสำเนางานนำเสนอ:

โครงสร้างข้อมูล Queues

Using a Queue

Queues คิวเป็นโครงสร้างข้อมูลเชิงเส้นที่สามารถเพิ่ม ข้อมูลเฉพาะตำแหน่งส่วนท้ายคิวที่เรียกว่า Rear และลบข้อมูลเฉพาะตำแหน่งส่วนหัวคิวที่เรียกว่า Front คิวเป็นโครงสร้างข้อมูลแบบเข้าก่อนออกก่อน (First In First Out : FIFO)

ตัวอย่างของคิว

ตัวอย่างการประยุกต์คิวมาใช้งานบนคอมพิวเตอร์ การเข้าคิวของโปรเซสหรืองานต่างๆ เพื่อรอการประมวลผลจากซีพียูตามลำดับ การเข้าคิวเพื่อรอพิมพ์ผลลัพธ์จากเครื่องพิมพ์

การดำเนินงานของคิว Queue Operation โครงสร้างข้อมูลแบบคิวจะมีส่วนคล้ายกับโครงสร้างข้อมูลแบบสแต็ก แต่ความแตกต่างระหว่างโครงสร้างทั้งสองก็คือ ในการสร้างคิวเพื่อใช้งานจำเป็นต้องมีส่วนที่ใช้ติดตามทั้งส่วนหัวคิวและท้ายคิวนั่นหมายความว่าจะมีพอยน์เตอร์ถึงสองตัวโดยพอยน์เตอร์แต่ละตัวจะชี้ตรงตำแหน่งปลายทั้งสองด้านซึ่งก็คือส่วน Front และ Rear แต่สแต็กจะมีเพียงพอยน์เตอร์เดียวที่ใช้จัดการกับข้อมูลตรงส่วน Top ของสแต็ก

ฟังก์ชันการดำเนินงานพื้นฐานของคิว 1. Enqueue (ใส่หรือเพิ่ม ในตำแหน่งของ Rear) 2. Dequeue(การลบ ที่ตำแหน่ง Font) 3. Queue Front (การขอดูข้อมูลในคิว) 4. Queue Rear(การขอดูข้อมูลในคิว)

Queue Operation Enqueue – การใส่ข้อมูลลงในแถวคอย ต้องใส่ข้อมูลด้านท้ายแถวเสมอ ต้องตรวจสอบว่า queue เต็มหรือไม่ DATA 3 DATA 2 DATA 1

Queue Operation Dequeue – นำข้อมูลออกจาก queue ต้องนำข้อมูลหัวแถวออกก่อนเสมอ ต้องตรวจสอบว่า queue ว่างหรือไม่ DATA 3 DATA 2 DATA 1

Queue Operation Front – แสดงข้อมูลที่อยู่หัวแถว DATA 1 แสดงค่าข้อมูลที่อยู่หัวแถวโดยไม่ได้ดึงข้อมูลออก ต้องตรวจสอบว่าเป็น queue ว่างหรือไม่ DATA 1 DATA 2 DATA 3 DATA 1

Queue Operation Rear – แสดงข้อมูลที่อยู่ท้ายแถว DATA3 แสดงค่าข้อมูลท้ายแถวโดยไม่ได้ดึงข้อมูลออก ต้องตรวจสอบว่าเป็น queue ว่างหรือไม่ DATA 1 DATA 2 DATA 3 DATA3

Enqueue การใส่หรือเพิ่มข้อมูลลงในคิวที่ตำแหน่ง Rear การเพิ่มข้อมูลเข้าไปในคิวจะต้องมีพื้นที่ว่างพอที่จะใส่สมาชิกใหม่เข้าไปถ้าพื้นที่ไม่เพียงพอก็จะทำให้เกิดสถานะ Overflow

Dequeue การนำข้อมูลที่ตำแหน่ง Front ออกจากคิวหรือการลบข้อมูลที่ตำแหน่ง Front ถ้าการลบข้อมูลในคิวถ้าคิวไม่มีสมาชิกอยู่จะทำให้เกิดสถานะ Underflow

Queue Front การขอดูข้อมูลในคิวที่ตำแหน่ง Front

Queue Rear การขอดูข้อมูลในคิวที่ตำแหน่ง Rear

Queue Implementation คิวเป็นโครงสร้างข้อมูลที่ผู้ใช้จะต้องสร้างขึ้นมาเอง โดยสามารถสร้างจากโครงสร้างข้อมูลดังต่อไปนี้ 1. ลิงค์ลิสต์ 2. อาร์เรย์

การออกแบบคิวด้วยลิงค์ลิสต์ Queue Linked List Design

ส่วนประกอบคิวด้วยลิงค์ลิสต์

ตัวอย่างการใช้งาน

อัลกอริทึมของคิว Queue Algorithms Create Queue การสร้างคิว Enqueue การเพิ่มข้อมูล Dequeue ลบข้อมูล Retrieving Queue Data การดึงข้อมูล Queue Front Queue Rear Empty Queue ตรวจสอบคิวว่าง Full Queue ตรวจสอบคิวเต็ม Queue Count นับจำนวนสมาชิก Destroy Queue ลบคิว

ตัวอย่างการ Enqueue กรณีที่ 1 เพิ่มข้อมูลในคิว ที่ยังไม่มีข้อมูลเลย กรณีที่ 2 เพิ่มข้อมูลในคิวที่มีข้อมูลอยู่แล้ว

ตัวอย่างการ Dequeue

การออกแบบคิวด้วยอาร์เรย์ Queue Array Design

ปัญหาที่อาจเกิดขึ้นขณะใช้งาน เมื่อมีการ Dequeue และ Enqueue อาจจะทำให้พื้นที่ด้านหลังของอาร์เรย์เต็ม แต่ช่องว่างด้านหน้าของอาร์เรย์ยังว่างอยู่

วิธีการแก้ไข Front rear

การใช้เทคนิคคิวแบบวงกลม Circular Queue

แบบฝึกหัด อธิบายพร้อมวาดภาพประกอบคิวเป็นโครงสร้างข้อมูลรูปแบบใด และมีความแตกต่างกับสแต็กอย่างไร อธิบายโครงสร้างข้อมูลแบบคิวที่สร้างด้วยลิงก์ลิสต์ประกอบด้วยสองส่วนสำคัญอยู่ 2 ส่วนด้วยกันคืออะไรบ้าง ยกตัวอย่างการประยุกต์ใช้คิวในงานบนคอมพิวเตอร์ อธิบายฟังก์ชันการดำเนินงานพื้นฐานของคิวมีกี่อย่างอะไรบ้าง

Stack enQ deQ

Achaporn Input Achaporn output nropahca โดยให้ นศ. นำหลักการทำงานของ Stack และ Q มาใช้ในการแก้ปัญหา