Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.

Slides:



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

[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
Stack.
Data structure & Algorithms
ลักษณะการทำงานของ Stack
บรรยายครั้งที่ 3: Queue
Linked-List (รายการโยง)
คิวQueue Circular Queue.
บทที่ 2 Queue Queue.
โครงสร้างข้อมูลแบบคิว
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
List ADTs By Pantharee S..
บทที่ 5 Link List Link List.
Linked List List is group of nodes that consists of data and link.
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
โครงสร้างข้อมูล Queues
WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 9 Heap and Hash 1.
หลักการโปรแกรม 1 Lecture 12: อาร์เรย์หนึ่งมิติ
System Requirement Collection (2)
Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
1.NET Framework Class อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Operator of String Data Type
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
การทดลองในวิชาฟิสิกส์
DATA STRUCTURE AND ALGORITHM Linked List.
หน่วยที่ 6 แถวลำดับ (Array)
Linked List (2) Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
รศ. ดร. บุญธีร์ เครือตราชู รศ. กฤตวัน ศิริบูรณ์ 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.
คำสั่งควบคุมการทำงาน
Project Management by Gantt Chart & PERT Diagram
Queue Lecturer : Kritawan Siriboon, Room no. 913
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Data Structure & Algorithm Concept
โครงสร้างข้อมูลและอัลกอริทึมเบื้องต้น
int isEmpty ( node **ptr_head) ;
Stack Sanchai Yeewiyom
Trees (2) University of Phayao Sanchai Yeewiyom
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
System Requirement Collection (1)
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
โครงสร้างภาษา C Arduino
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List Lecturer : Kritawan Siriboon, Room no. 913
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
ต้นไม้เอวีแอล (AVL Tree)
โดย นายอนุชา ศรีเริงหล้า นักอุตุนิยมวิทยาปฏิบัติการ
โครงสร้างข้อมูลแบบสแตก (stack)
Hashing Sanchai Yeewiyom
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Algorithms Analysis Sanchai Yeewiyom
การเปลี่ยนแปลงประมาณการทางบัญชี และข้อผิดพลาด
2 โครงสร้างข้อมูลแบบสแตก (STACK).
3 โครงสร้างข้อมูลแบบคิว (QUEUE).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
Array Sanchai Yeewiyom
Array: One Dimension Programming I 9.
4 โครงสร้างข้อมูลแบบลิงค์ลิสต์ (LINKED LIST).
พอยเตอร์ #include <stdio.h> void main() { int age; int *pointer;
ใบสำเนางานนำเสนอ:

Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao

2 Queue A queue’s behavior is characterized as first in, first out (FIFO). Exp. การจัด queue ในการพิมพ์ของ network printer หรือการทำงานของ queue ใน operating system นำไปใช้ในเรื่อง simulation เช่น การ จำลองการหาเวลาที่น้อยที่สุดในการรอ

3 Queue Implementation Array Based Implementation Linear Queue Circular Queue Pointer Based Implementation Linear Queue Circular Queue

4 Array Based Implementation Linear Queue ABC frontrear

5 Linear Queue (Array Based) Insert ABCD front rear

6 Linear Queue (Array Based) Delete BCD front rear

7 Linear Queue (Array Based) Exp. Declaration and Initialize of Linear Queue const int max_queue = 5; typedef..(desired type).. queueitemtype; queueitemtype item[max_queue]; int front, rear; front = 0; rear = -1;

8 Linear Queue (Array Based) Insert const int max_queue = 5; int item[max_queue]; int front, rear; front = 0; rear = -1;

Linear Queue (Array Based) void q_insert (int x) { if (rear == max_queue – 1) { cout << “Queue Full” << endl; } else { rear ++; item[rear] = x; } 9

10 Linear Queue (Array Based) Delete

Linear Queue (Array Based) int q_delete (int& y) { if (rear < front) { cout << “Queue Empty” << endl; } else { y = item[front]; if (front == rear) { front = 0; rear = -1; } else { front ++; } return (y); } 11

12 Circular Queue (Array Based) Exp. Initialize Circular Queue front = 0; rear = max_queue – 1; count = 0;

13 Circular Queue (Array Based) max_queue =

14 Circular Queue (Array Based) การคำนวณเมื่อวนมาถึงตัวสุดท้ายของ queue rear = (rear + 1) % max_queue;

15 Circular Queue (Array Based) Exp. Add (Insert), Remove (Delete) from Queue

16 Pointer Based Implementation Linear Queue front rear

17 Linear Queue (Pointer Based) Add (Insert) front rear p

18 Linear Queue (Pointer Based) Add (Insert)

19 Linear Queue (Pointer Based) Remove (Delete) rear front temp front

20 Linear Queue (Pointer Based) Remove (Delete)

21 Circular Linked Queue Add (like a CLL) 58 rear newfrontptr rear

22 Circular Linked Queue Add newfrontptr -> next = rear -> next; rear -> next = newfrontptr; rear = newfrontptr;

23 Circular Linked Queue Add

24 Circular Linked Queue Remove 1058 frontptr rear

25 Circular Linked Queue Remove frontptr = rear -> next; y = frontptr -> data; rear -> next = frontptr -> next; frontptr -> next =null; delete frontptr; frontptr = null;

26 Circular Linked Queue Remove

Bank Transaction Time Application of Queue 27

28 Application of Queue Exp. การคำนวณระยะเวลาที่ใช้ในการรอ คอยของลูกค้าแต่ละคน ในการใช้บริการ Teller ของธนาคารแห่งหนึ่ง ซึ่งมีข้อมูล ดังนี้ เวลาที่มาถึงเวลาที่ใช้ในการรับบริการ คนที่ คนที่ คนที่ คนที่ 4 303

Application of Queue Result of Simulation 29

Application of Queue Instance of Event List 30

Application of Queue Trace of Bank Simulation 31

ตามหลักการของคิว ข้อมูลที่เข้ามาก่อนจะมี สิทธิ์ออกก่อน (First In First Out:FIFO) อย่างไรก็ตาม มีบางครั้งที่เราต้องให้ข้อมูล บางประเภทได้ทำงานก่อนทั้งที่มาทีหลัง เนื่องจากได้รับอภิสิทธิ์ (priority) เช่น การ จัดคิวการเข้ารักษาของผู้ป่วยใน โรงพยาบาลตามความรุนแรง หรือกรณี ลูกค้าประจำจะได้รับการบริการก่อน ถึงแม้ จะเข้ามาทีหลัง เป็นต้น คิวลำดับความสำคัญ หรือ แถวคอยเชิงบุริมภาพ (Priority Queue)

ในการทำงานกับคิวแบบนี้ ต้องมีค่า อภิสิทธิ์ของแต่ละสมาชิกเก็บไว้ด้วย เพื่อ ใช้หาตำแหน่งที่อยู่ก่อนหน้าสมาชิกที่มี อภิสิทธิ์ต่ำกว่าและตามหลังสมาชิกที่มี อภิสิทธิ์เท่ากันหรือสูงกว่า typedef struct { int priority; char data; } Queue; Queue priority_queue[15]; Priority Queue

... front = 0 rear = 4 Priority Queue

... front = 0 rear = 4 ต้องการแทรก W ที่มีอภิสิทธิ์เท่ากับ 2 Priority Queue

... front = 0 rear = 5 หลังแทรก W ที่มีอภิสิทธิ์เท่ากับ 2 Priority Queue