Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Computer Programming 1 LAB Test 3
Advertisements

Stack.
แถวคอย (Queue).
Data structure & Algorithms
บรรยายครั้งที่ 3: Queue
Linked-List (รายการโยง)
คิวQueue Circular Queue.
บทที่ 2 Queue Queue.
โครงสร้างข้อมูลแบบคิว
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
โครงสร้างข้อมูล Queues
Chapter 3 Data Representation (การแทนข้อมูล)
ครุศาสตรมหาบัณฑิต สาขาวิชา การสอนภาษาอังกฤษเพื่อ วิชาการและงานอาชีพ
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รศ. ดร. บุญธีร์ เครือตราชู รศ. กฤตวัน ศิริบูรณ์ 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.
ศึกษาข้อมูลท้องถิ่นบ้านสนาม
ยินดีต้อนรับ คณะกรรมการประเมินคุณภาพการศึกษาภายใน “สำนักส่งเสริมวิชาการและงานทะเบียน” วันอังคารที่ 23 สิงหาคม พ.ศ
Application of Electron Paramagnetic Resonance (EPR)
Queue Lecturer : Kritawan Siriboon, Room no. 913
Lubna Shamshad (Ph.D Student) Supervisor Dr.GulRooh
Chapter 3 Design of Discrete-Time control systems Frequency Response
ยินดีต้อนรับ นสต. ภ.๙.
การส่งเสริมจริยธรรมและคุณธรรม เพื่อการป้องกันการทุจริต
ชั้นมัธยมศึกษาปีที่ ๖ โรงเรียนสาธิตมหาวิทยาลัยราชภัฏสวนสุนันทา
หน่วยที่ 2 การประกันคุณภาพภายในสถานศึกษา
Multiple Input Multiple Output (MIMO)
บทที่ 7 TAS 17 (ปรับปรุง 2558): สัญญาเช่า (Leases)
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List.
Mark Allen Weiss, Addison Wesley
โครงการส่งเสริมการพัฒนาคุณภาพงาน คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่
Linked List.
แผนการจัดการเรียนรู้ กลุ่มสาระการเรียนรู้วิทยาศาสตร์
ทะเบียนราษฎร.
นายธนวิทย์ โพธิ์พฤกษ์ เลขที่ 8 นายอนุสรณ์ ขำหลง เลขที่ 29
เรื่อง การบริหารการศึกษาตาม พ.ร.บ ระเบียบบริหารราชการกระทรวงศึกษาธิการ
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ระเบียบกระทรวงมหาดไทย
บทที่ 12 การวิเคราะห์สหสัมพันธ์และการถดถอย
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
DATA STRUCTURES AND ALGORITHMS
ขั้นตอนการจัดตั้งกลุ่มส่งเสริมอาชีพ จังหวัดนครราชสีมา ปี ๒๕๕๘/๕๙
หลักการจัดกิจกรรมนันทนาการ
การประชุมผู้บริหารระดับสูงกระทรวงวัฒนธรรม ครั้งที่ ๔/๒๕๖๐
การเบิกจ่ายเงินเกี่ยวกับค่าใช้จ่าย ในการบริหารงานของส่วนราชการ
ขั้นตอนของกิจกรรม : ปฏิบัติเป็นประจำ เพื่อให้เกิดการพัฒนาอย่างต่อเนื่อง
งานเงินสมทบและการตรวจสอบ
ยินดีต้อนรับเข้าสู่บทเรียนคอมพิวเตอร์ วัยรุ่นไทยใส่ใจวัฒนธรรม เรื่อง
การพัฒนาระบบบริหารจัดการกำลังคนด้านสุขภาพ “การพัฒนาบุคลากร”
วิชาสังคมศึกษา ม.3 สาระที่ 1 ศาสนา ศีลธรรม จริยธรรม.
มหาวิยาลัยราชภัฏนครราชสีมา
ความหมายของหนี้สาธารณะ
การบริหารการเงิน ในสถานศึกษา
องค์ประกอบและผลกระทบของธุรกิจไมซ์
โคลง ร่าย และ โดยครูธาริตา นพสุวรรณ
Matrix 1.Thamonaporn intasuwan no.7 2.Wannisa chawlaw no.13 3.Sunita taoklang no.17 4.Aungkhana mueagjinda no.20.
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
นำเสนอ วัดเกาะชัน ด.ช.ปกรณ์ ร้อยจันทร์ ม.2/7 เลขที่ 19
ข้อกำหนด/มาตรฐาน ด้านสุขาภิบาลอาหาร
การบริหารหลักสูตร ความหมาย : การดำเนินงานที่เกี่ยวข้องกับการทำหลักสูตร และเอกสารประกอบหลักสูตร ไปสู่การปฏิบัติในสถานการณ์จริงหรือกิจกรรมการเรียนการสอนให้เป็นไปตามเป้าหมายที่กำหนดไว้ในหลักสูตรโดยอาศัยการสนับสนุนและร่วมมือจากบุคคลที่เกี่ยวข้องกับการใช้หลักส
การพิจารณาสัญชาติของบุคคล
3 โครงสร้างข้อมูลแบบคิว (QUEUE).
การดำเนินกิจการ ของสหกรณ์ออมทรัพย์.
Stack (Push Down Stack)
ใบสำเนางานนำเสนอ:

Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong

หัวข้อวันนี้ ADT of Queue Value Definition Operation Definition Implementations of Queue (static memory allocation) Enqueue() , Dequeue() initQueue() , isEmpty() , isFull()

ลักษณะของคิวในชีวิตประจำวัน

ADT : Value Definition ข้อมูลที่จะเก็บในคิวจะมีชนิดเป็นอย่างไรก็ได้ ขึ้นอยู่กับว่าเราจะเก็บข้อมูลอะไร ข้อมูลที่ต้องการจัดเก็บไม่จำเป็นต้องเป็นข้อมูลเชิงเดี่ยว อาจเป็นข้อมูลเชิงโครงสร้างก็ได้ โครงสร้างมีความสัมพันธ์แบบเชิงเส้น ข้อมูลถูกเก็บเป็นแถวเรียงต่อกันไปในหน่วยความจำ มีลำดับของการใส่ข้อมูลและนำข้อมูลออก

ADT : Value Definition (cont’) ข้อมูลที่เข้าคิวทีหลังจะต่ออยู่ด้านท้ายแถว เรียกตำแหน่งนี้ว่า rear ข้อมูลที่จะนำออกจากคิวได้ต้องเป็นข้อมูลที่อยู่ตำแหน่งหัวแถวเท่านั้น เรียกตำแหน่งนี้ว่า front ข้อมูลที่นำเข้าไปในคิวก่อนจะถูกนำออกมาใช้งานก่อน เข้าก่อนออกก่อน (First In First Out : FIFO)

ADT : Operation definition การนำข้อมูลเข้า (enqueue) ใส่ข้อมูลด้านท้ายสุดของโครงสร้าง (rear) (ถ้าจะเข้าคิวต้องต่อท้ายแถว) การนำข้อมูลออก (dequeue) นำข้อมูลออกจากด้านหน้าของโครงสร้าง (front) (หัวแถวจะได้ออกจากคิวก่อน)

Implementation : Accessing Queue front empty A B C empty empty ข้อมูลออก ข้อมูลเข้า rear การเข้าถึงข้อมูลในโครงสร้างคิวต้องอาศัย index 2 ตัว คือ index ที่ชี้ไปยังข้อมูลตัวแรกของคิว (front) index ที่ชี้ไปยังข้อมูลตัวสุดท้ายของคิว (rear)

Implementation : enqueue , dequeue เพิ่มค่าของ rear ไปอีก 1 ช่อง (กำหนดตำแหน่งท้ายคิวที่จะนำข้อมูลมาต่อ) นำสมาชิกใหม่เข้ามาไว้ ณ ตำแหน่ง rear index dequeue นำข้อมูล ณ ตำแหน่ง front index ออกจากคิว เพิ่มค่าของ front ไปอีก 1 ช่อง (ไปชี้ที่ข้อมูลหัวคิวตำแหน่งถัดไป)

Example (implement with C) 1 2 3 Queue[4] A B C D init(Queue) enqueue(‘A’,Queue) enqueue(‘B’,Queue) X = dequeue(Queue) enqueue(‘C’,Queue) enqueue(‘D’,Queue) Y = dequeue(Queue) front = -1 1 2 3 rear = -1 1 2 3

Implementation of Queue (static memory allocation)

การสร้างคิว คล้ายกับสแตก ใช้อาร์เรย์ช่วยในการสร้างคิวได้ ในภาษาซี นิยมสร้างคิวโดยกำหนดเป็นตัวแปรแบบ structure ที่ประกอบไปด้วยเขตข้อมูล 3 เขต คือ อาร์เรย์ที่ใช้เก็บข้อมูลในคิว จำนวนเต็มที่ทำหน้าที่เป็น front index จำนวนเต็มที่ทำหน้าที่เป็น rear index ทุกครั้งที่มีการ enqueue, dequeue ทำผ่านฟังก์ชัน enqueue() , dequeue()

นอกจากนี้เราอาจต้องสร้างฟังก์ชันเพิ่มเติมเพื่อให้สามารถทำงานได้สมบูรณ์ เช่น initQueue() – กำหนดค่าเริ่มต้นให้กับคิว isEmpty() – ตรวจสอบว่าคิวว่างหรือไม่ isFull() – ตรวจสอบว่าคิวเต็มหรือไม่ enqueue() – นำข้อมูลใส่ลงคิว dequeue() – ดึงข้อมูลออกจากคิว

ต้องกำหนดค่าเริ่มต้นให้กับคิว #define MAXQUEUE 10 //กำหนดขนาดของคิว typedef struct { int data[MAXQUEUE]; // กำหนดเป็นคิวของ int โดยใช้ array int front; // กำหนด front index int rear; // กำหนด rear index } QUEUE; QUEUE Q; ต้องกำหนดค่าเริ่มต้นให้กับคิว

ฟังก์ชัน enqueue() parameter ข้อมูลที่จะใส่ลงคิว ชื่อของตัวแปรคิวที่จะใส่ข้อมูลลงไป return value ไม่มี body of function ตรวจสอบว่าคิวว่างหรือไม่ ถ้าใช่ -> กำหนดให้ front , rear ชี้ที่ array ช่องแรก ถ้าไม่ใช่ -> เลื่อน rear ไป 1 ตำแหน่ง นำข้อมูลใส่อาร์เรย์ ณ ตำแหน่ง rear

ฟังก์ชัน dequeue() parameter ชื่อของตัวแปรคิวที่จะดึงข้อมูลออกมา return value ผลลัพธ์ของการดึงข้อมูล (ชนิดตามชนิดของข้อมูลใน queue) body of function return ข้อมูลจากอาร์เรย์ ณ ตำแหน่ง front ตรวจสอบว่าคิวมีข้อมูลอยู่ตัวเดียวหรือไม่ ถ้าใช่ -> กำหนดให้ front , rear มีสถานะเป็นคิวว่าง ถ้าไม่ใช่ -> เลื่อน front ไป 1 ตำแหน่ง

ฟังก์ชัน initQueue() parameter ชื่อของตัวแปรคิวที่จะกำหนดค่าเริ่มต้น return value ไม่มี body of function กำหนดค่า front และ rear เป็นสถานะคิวว่าง front = rear = -1

ฟังก์ชัน isEmpty() parameter ชื่อของตัวแปรคิวที่จะตรวจสอบว่าว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ว่าง (0) body of function ตรวจสอบว่าคิวว่างหรือไม่ (front==-1), (rear==-1), ((front==-1)&&(rear==-1)) ถ้าใช่ return 1 , ถ้าไม่ใช่ return 0

ฟังก์ชัน isFull() parameter ชื่อของตัวแปรคิวที่จะตรวจสอบว่าเต็มหรือไม่ return value มีได้ 2 สถานะ คือ เต็ม (1) หรือ ไม่เต็ม (0) body of function ตรวจสอบว่าคิวเต็มหรือไม่ ( rear == (MAXQUEUE - 1) ) ถ้าใช่ return 1 , ถ้าไม่ใช่ return 0