Queue Implementation Array Linked List Queue Array Implementation
- Slides: 44
Queue Implementation Ø Array ØLinked List
Queue: Array Implementation Array, size = 5 ตวอยางการแทนควดวย ���� front = rear = 0 เพม B, C ลบ A A A front = rear = 1 A front = 1 B C rear = 3 B C front = 2 rear = 3
Queue : Array Implementation การนำสมาชกเขาคว Empty queue front = rear = 0 Enqueue(A) A front rear Enqueue(B) A front B rear (enqueue)
Queue : Array Implementation (enqueue) (��� ) การนำสมาชกเขาคว Enqueue (C) A B rear front Enqueue(D) A C B C front Enqueue(E) Error : Overflow D rear
Queue : Array Implementation การนำสมาชกออกจากคว A B C front (dequeue) D rear dequeue B C front D rear dequeue C D front rear
Queue : Array Implementation การนำสมาชกออกจากคว (dequeue) (��� ) dequeue D front rear dequeue front = rear = 0 dequeue Error : Underflow
Queue: Linked List Implementation front A rear B D X struct node { char name; struct node *link; }
Queue: Linked List Implementation front A rear B D X void enqueue (datatype newdata) {. . . rear link = newnode; rear = newnode; } rear F X
Queue: Linked List Implementation front rear A B char dequeue () { … deldata = front data; front = front link; …} D F X
Queue: Linked List Implementation How to detect that a queue is either full or empty ? 19/96
Imagine we have a queue of integer, Q, size = 6. Draw picture of both structures after the following operations: . 1 enqueue(Q, 5) 2. enqueue(Q, 1) 3. enqueue(Q, 7) 4. enqueue(Q, 3) 5. dequeue(Q) 6. dequeue(Q) 20/96 7. enqueue(Q, 15) 8. enqueue(Q, 6) 9. dequeue(Q) 10. dequeue(Q) 11. enqueue(Q, 10) 12. enqueue(Q, 9) ���� �. ������������������������
Problem with Array Implementation (size = 7) maxq G H front=5 J rear=7 Enqueue K G H front=5 22/96 ���� �. ������������������������ J Error: Overflow rear=8
Circular Queue การนำขอมลเขาคววงกลม D E front rear Enqueue(A) A D rear E front Enqueue(B) A B rear D front E
Circular Queue การนำสมาชกออกจากคววงกลม A B rear D E front Dequeue A B rear Dequeue A B front rear E front
rear=12 front=1 P O Enqueue N Q F G Queue is Full H M L 28/96 I K J rear=7 rear=6 rear=5 ���� �. ������������������������
rear=12 front=1 O Dequeue P Q front=2 F N G M H L front=3 I K J 2 rooms available 29/96 ���� �. ������������������������
rear=12 rear=1 P O Enqueue N Q S Queue is Full H M L 30/96 rear=2 R I K J ���� �. ������������������������ front=3
Array Implementation J F G H I rear=1 front=4 subprogram enqueue (datatype newdata) 1. rear+1 2. if (rear == maxq) 2. 1 rear 1 3. return 31/96 ���� �. ������������������������
Array Implementation J rear=1 F G H I front=4 subprogram dequeue (datatype olddata) 1. front+1 2. if (front == maxq) 2. 1 front 1 3. return 32/96 ���� �. ������������������������
How can we know that a circular queue (array and linked list) is empty or full ? 33/96 ���� �. ������������������������
Imagine we have a Circular queue of integer, Q, size = 6. Draw picture of both structures after the following operations: . 1 enqueue(Q, 5) 2. enqueue(Q, 1) 3. enqueue(Q, 7) 4. enqueue(Q, 3) 5. dequeue(Q) 6. dequeue(Q) 34/96 7. enqueue(Q, 15) 8. enqueue(Q, 6) 9. dequeue(Q) 10. dequeue(Q) 11. enqueue(Q, 10) 12. enqueue(Q, 9) ���� �. ������������������������
Imagine we have a priority queue of integer, Q size = 5. Draw picture of both structures after the following operations: operation (Q, pri, data(. 1 enqueue(Q, 1, 7) 7. enqueue(Q, 3, 1(. 2 enqueue(Q, 1, 4) 8. dequeue(Q, x(. 3 enqueue(Q, 3, 3) 9. dequeue(Q, y(. 4 dequeue(Q, x) 10. enqueue(Q, 2, y(. 5 enqueue(Q, 2, 9) 11. enqueue(Q, 3, x(. 6 enqueue(Q, 1, x) 12. enqueue(Q, 2, 2( 40/96 ���� �. ������������������������
Array Implementation Linked List Implementation 41/96 ���� �. ������������������������
Which kind of implementation either array or linked list that we should choose for Priority Queue Implementation? 42/96 ���� �. ������������������������
Imagine we have a priority circular queue of integer, Q size = 5. Draw picture of both structures after the following operations: . 1 enqueue(Q, 1, 7). 2 enqueue(Q, 1, 4). 3 enqueue(Q, 3, 3). 4 dequeue(Q, x). 5 enqueue(Q, 2, 9). 6 enqueue(Q, 1, x) 43/96 7. enqueue(Q, 3, 1( 8. dequeue(Q, x( 9. dequeue(Q, y( 10. enqueue(Q, 2, y( 11. enqueue(Q, 3, x( 12. enqueue(Q, 2, 2( ���� �. ������������������������
- In linked list the successive elements
- Singly linked list vs doubly linked list
- Perbedaan single linked list dan double linked list
- Difference between linked list and queue
- Priority queue doubly linked list
- Empty
- Array disadvantages
- Array based implementation of list adt
- Queue introduction
- Double ended queue struktur data
- Generic linked list java
- Jenis linked list
- Singly vs doubly linked list
- Polynomial manipulation in linked list in data structure
- Tan is a lover of linked list
- Xor linked list c++
- Traverse a linked list c++
- Linked list in mips
- Definition of linked list
- Linked list uml
- Advantages of singly linked list
- 類似
- Circular single linked list
- Concurrent linked list
- Prev nn artinya
- Adt linked list
- Advantages of circular linked list
- Circular linked list with header node
- Algorithm for single linked list
- Java data structures
- Public static void main
- Multi linked list in c
- Linked list representation of disjoint sets
- Assignment operator c++ linked list
- Quick sort on linked list
- Doubly linked list visualization
- Quick fit memory allocation
- Lock free linked list
- Deep copy doubly linked list c++
- Multi linked list
- Linked list pros and cons
- Mips linked list
- Linked list python code
- Linked list python
- Nested linked list