3 โครงสร้างข้อมูลแบบคิว (QUEUE).

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Data structure & Algorithms
Advertisements

คิวQueue Circular Queue.
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
หลักการโปรแกรม 1 Lecture 12: อาร์เรย์หนึ่งมิติ
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
โรงเรียนนวมินทราชินูทิศ เตรียมอุดมศึกษาพัฒนาการ
ณ ห้องปฏิบัติการคอมพิวเตอร์ คณะพยาบาลศาสตร์ มหาวิทยาลัยเชียงใหม่
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
ประโยคในภาษาไทย การเขียนประกอบด้วยประโยคต่าง ๆ หลายรูปแบบ หากเข้าใจโครงสร้างของประโยค จะทำให้สื่อความหมายได้ชัดเจน ไม่สับสน ไม่คลุมเครือ และไม่ขาดตกบกพร่อง.
การใช้งานโปรแกรม SPSS
Sc B011 Software ที่สนใจ. sc B012 VCD Cutter โปรแกรม ตัด - ต่อ VCD เฉพาะส่วนที่ ต้องการแบบง่าย ๆ.
Entity-Relationship Model E-R Model
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
โครงสร้างข้อมูล (Data Structures ) รหัสวิชา การเรียงลำดับข้อมูลแบบ (Heap Sort)
DATA STRUCTURE AND ALGORITHM Linked List.
หน่วยที่ 6 แถวลำดับ (Array)
การใช้งาน Microsoft Excel
การใช้งาน Microsoft Excel
QueueQueue 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.
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
Intro Excel 2010 ข้อมูลจาก... ellession1.htm.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
เทคนิคการใช้ Microsoft Excel. 1. การตีตารางในรูปแบบต่าง ๆ 2. การแทรกภาพในตาราง 3. การตกแต่งข้อมูลด้วย Format Cells 4. การคำนวณ บวก ลบ คูณ หาร 5. การย่อ.
การสร้างฐานข้อมูลใหม่ หมายถึง การสร้างแฟ้มข้อมูลใหม่บน Access สามารถกำหนด ได้ดังต่อไปนี้ ภาพแสดงการสร้างฐานข้อมูลใหม่
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
Queue Lecturer : Kritawan Siriboon, Room no. 913
“วิธีการใช้งาน PG Program New Version สำหรับ PGD”
เกม คณิตคิดเร็ว.
การจัดการโปรเซส T.Kunlaya Charoenmongkonvilai
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การประยุกต์ Logic Gates ภาค 2
บทที่ 3 การพัฒนาโปรแกรมโดยเขียนคำสั่ง VBA
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
Trees (2) University of Phayao Sanchai Yeewiyom
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
การบันทึกรายการค้าในสมุดบัญชี
โครงสร้างภาษา C Arduino
หน่วยการเรียนที่ 4 เรื่อง การควบคุมทิศทางการทำงาน
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
คำสั่ง Create , Insert, Delete, Update
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
บริษัท พัฒนาวิชาการ (2535) จำกัด
Week 5 C Programming.
โครงสร้างข้อมูลแบบสแตก (stack)
คำสั่งวนรอบ (Loop).
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
บทที่ 3 : รูปแบบการเชื่อมต่อเครือข่ายและส่วนประกอบของเครือข่ายท้องถิ่น (Topologies and LAN Components) Part1.
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
Tree.
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Chapter 3 : Array.
Array Sanchai Yeewiyom
Array: One Dimension Programming I 9.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
โครงการถ่ายทอดเทคโนโลยีถนนรีไซเคิลเพื่อลดขยะพลาสติกใน 4 ภูมิภาค
พื้นฐานการมองแบบภาพ 2D 3D
ใบสำเนางานนำเสนอ:

3 โครงสร้างข้อมูลแบบคิว (QUEUE)

เป็นโครงสร้างการทำงานแบบแถวลำดับ เป็นโครงสร้างที่มีคุณสมบัติ คือ ความหมายของ Queue? เป็นโครงสร้างการทำงานแบบแถวลำดับ เป็นโครงสร้างที่มีคุณสมบัติ คือ การนำข้อมูลเข้าสู่ QUEUE จะทำที่ปลายด้านหนึ่ง เรียกว่า REAR (หางคิว) การนำข้อมูลออกจาก QUEUEจะทำได้ที่ปลายด้านหนึ่ง เรียกว่า FRONT (หัวคิว) จากคุณสมบัตินี้ทำให้ถูกเรียกว่า FIFO (First in , First Out) คือ ข้อมูลที่เข้าก่อนก็จะออกก่อน

การดำเนินงานของ Queue EnQ (N-Q) หรือ Add หรือ INSERT คือการนำสมาชิกใหม่เข้าไปเก็บสู่ Queue โดยจะเป็นการนำไปเก็บต่อท้ายสมาชิกเดิมที่มีอยู่ใน Queue (ที่ REAR) DeQ (D-Q) หรือ Delete หรือ Remove คือการนำสมาชิกที่อยู่ใน Queue ออกจาก Queue โดยจะเป็นการนำข้อมูลออกที่หน้า Queue (ที่ Front)

QUEUE ALOGORITHM REAR En-Q A B C D De-Q A B C D FRONT FRONT

การดำเนินงานของ Queue ถ้าไม่มีจะไม่สามารถนำข้อมูลออกได้ เรียกว่า “Empty Queue” หรือ FRONT = REAR = 0 การตรวจสอบดูว่า Queue เต็มหรือไม่ ? ถ้าไม่มีจะไม่สามารถนำข้อมูลเข้าได้ เรียกว่า “Full Queue” REAR = Max Queue

แนวทางในการออกแบบ Queue ใช้ Rear Pointer เพียงตัวเดียวแล้วกำหนดให้ Index แรกของ Array (ที่ใช้ในการสร้างเป็นตัว Queue) เป็น Front Pointer ใช้ Front Pointer และ Rear Pointer เป็นตัวในการจัดการ Queue ใช้ Front Pointer และ Rear Pointer เป็นตัวในการจัดการ Queue แต่ทำการจัดการเป็นแบบ Circular Queue

แนวทางในการออกแบบ Queue: แบบที่ 1 ใช้ Rear Pointer เพียงตัวเดียวแล้วกำหนดให้ Index แรกของ Array (ที่ใช้ในการสร้างเป็นตัว Queue) เป็น Front Pointer REAR ใช้ Rear Pointer เป็นตัวระบุในการบอกว่าหางคิวอยู่ที่ใด เมื่อมีการเอาข้อมูลออกจาก Queue จะไม่มีการขยับ Front Pointer มาชี้ตัวรองลงมาแต่จะทำการขยับข้อมูลทั้งหมดไปที่ Index = 0 แทน

แนวทางในการออกแบบ Queue: แบบที่ 1 เมื่อมีการนำสมาชิกใน Queue ออกจาก Queue จำเป็นต้องทำการขยับสมาชิกทุกตัวที่เหลือ ไปทางซ้ายมือ ( Index = 0 ) ทำให้เสียเวลาการทำงานของโปรแกรม ทำให้ประสิทธิภาพการทำงานของโปรแกรมลดลง

แนวทางในการออกแบบ Queue: แบบที่ 2 ใช้ Front Pointer และ Rear Pointer เป็นตัวในการจัดการ Queue ใช้ Front Pointer เป็นตัวระบุในการบอกว่าหัวคิวอยู่ที่ใด ใช้ Rear Pointer เป็นตัวระบุในการบอกว่าหางคิวอยู่ที่ใด เมื่อมีการเอาข้อมูลออกจาก Queue จะทำการขยับ Front Pointer มาชี้ที่ข้อมูลที่มาเป็นหัวคิวแทน เมื่อมีการเอาข้อมูลเข้า Queue จะทำการขยับ Rear Pointer มาชี้ที่ข้อมูลที่มาเป็นหางคิวแทน REAR FRONT

แนวทางในการออกแบบ Queue: แบบที่ 2 ในบางกรณีเกิดช่องว่างของพื้นทีภายใน Queue ทั้งที่ความเป็นจริงแล้วพิ้นที่ภายใน Queue ยังว่างอยู่

ประกอบไปด้วย มีเพื่อระบุว่าหัวคิว (Front) และ หางคิว (Rear) อยู่ที่ใด การสร้าง Queue ด้วยโครงสร้างข้อมูล Array (Implementation of Queue as Array) ประกอบไปด้วย ตัว Queue ( อาจจะเป็น ARRAY ได้ หรือ Link List) ตัวระบุค่าของ Queue มีเพื่อระบุว่าหัวคิว (Front) และ หางคิว (Rear) อยู่ที่ใด โปรแกรมย่อย 2 โปรแกรมคือ EnQ() และ DeQ() โปรแกรมย่อย 2 โปรแกรมคือ EmptyQ() และ FullQ()

การดำเนินการ EnQ() 1. ตรวจสอบว่า Queue เต็ม ? โดยการตรวจสอบว่า Rear เท่ากับ MaxStack ? ใช้ Function FullStack() ถ้า Queue เต็ม แสดงว่า “Queue Overflow“ หรือ “Full Queue” แล้วเลิกงาน ถ้า Queue ไม่เต็ม ให้ทำงานข้อที่ 2 และ 3 2. ให้เพิ่มค่าของ Rear อีก 1 3. ใส่ข้อมูลลงใน Queue ในตำแหน่งของตัวแปร Rear

การดำเนินการ POP() 1. ตรวจสอบว่า Queue ว่างเปล่า ? โดยการตรวจสอบว่า Front =Rear เท่ากับ 0 ? ใช้ Function EmptyQueue() ถ้า Queue ว่าง แสดงว่า “Queue Under flow" หรือ “Queue Stack”แล้วเลิกงาน ถ้า Queue ไม่ว่าง ให้ทำงานข้อที่ 2 และ 3 2. นำค่าของ Queue ในตำแหน่ง Front มาเก็บในตัวแปร 3. ให้เพิ่มค่าของ Front อีก 1 4. แสดงค่าที่ DeQ ได้