QUEUE - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

QUEUE

Description:

QUEUE Pertemuan ke-6 T 0026 Queue Bentuk khusus dari ordered list Data di insert di akhir list Data di delete di awal list Queue sebagai ADT Representasi Queue Yang ... – PowerPoint PPT presentation

Number of Views:101
Avg rating:3.0/5.0
Slides: 16
Provided by: Lili141
Category:
Tags: queue | circular | queue

less

Transcript and Presenter's Notes

Title: QUEUE


1
QUEUE
Pertemuan ke-6T 0026
2
Queue
  • Bentuk khusus dari ordered list
  • Data di insert di akhir list
  • Data di delete di awal list

3
Queue sebagai ADT
Misal, queue Q terdiri dari n elemen Q ( ao ,
a1 , , ai , ai1 , , an-1 )
Elemen paling depan FRONT
Elemen paling belakang REAR
  • ao elemen yang diinsert pertama kali
  • an-1 elemen yang diinsert terakhir

4
Representasi Queue
  • Yang paling sederhana array 1-D
  • Disebut Sequential Queue
  • 2 variabel indikator REAR dan FRONT
  • define MAX_QUEUE_SIZE 100
  • eltype queueMAX_QUEUE_SIZE
  • int rear -1
  • int front -1

5
Aplikasi Queue dengan Array 1-D
front rear Q0 Q1 Q2 Q3 Comments
-1 -1 Queue kosong
-1 0 J1 Masuk Job 1
-1 1 J1 J2 Masuk Job 2
-1 2 J1 J2 J3 Masuk Job 3
0 2 J2 J3 Hapus Job 1
1 2 J3 Hapus Job 2
6
Sequential Queue Add Queue
  • void addq (int rear, eltype item)
  • if (rear MAX_QUEUE_SIZE-1)
  • printf (Queue penuh\n)
  • return
  • queuerear item
  • / indeks rear di-increment sebelum insert data
    baru /

7
Sequential Queue Delete Queue
  • eltype deleteq(int front, int rear) if (front
    rear)
  • printf (queue empty\n)
  • return
  • return queue(front)
  • /indeks front di-increment sebelum passing nilai
    yang disimpan di queue /

8
Kekurangan Sequential Queue
  • Setelah beberapa data insert dan delete dari
    queue, REAR dan FRONT bergerak ke kanan, hingga
    REAR mencapai MAX_QUEUE_SIZE-1.
  • Jika REAR mencapai maksimum, queue akan dideteksi
    PENUH, meskipun beberapa lokasi di depan FRONT
    kosong.
  • Solusi elemen queue harus digeser ke depan shg
    FRONT-1 dan REAR ! MAX_QUEUE_SIZE-1
  • Tetapi perlu waktu untuk menggeser elemen satu
    persatu.
  • Lebih baik gunakan circular array untuk queue

9
Circular Queue Empty
  • Empty front rear

10
Circular Queue Full
  • Full
  • front (rear 1) MAX_QUEUE_SIZE

11
Circular Queue Insert
2
3
R
J2
J1
1
4
0
5
F
Insert REAR berubah, FRONT tetap rear
(rear1) MAX_QUEUE_SIZE
12
Circular Queue Delete
R
F
  • Delete FRONT berubah, REAR tetap
  • front (front1) MAX_QUEUE_SIZE

13
Circular Queue Add Queue
  • void addq(int front,int rear, eltype item)
  • rear (rear1)MAX_QUEUE_SIZE
  • if (front rear)
  • printf (Queue full\n)
  • return
  • queuerear item

14
Circular Queue Delete Queue
  • eltype deleteq (int front, int rear)
  • eltype item
  • if (front rear)
  • printf (Queue empty\n)
  • return
  • front (front1)MAX_QUEUE_SIZE
  • return queuefront

15
Implementasi Queue dengan Single Linked-List
nama
ip
nama
ip
link
nama
ip
front
link
link
Dewi
4.0
Tono
3.8
Ani
3.7
NULL
rear
  • Typedef struct elqueue
  • char name10
  • float ip
  • struct elqueue link
Write a Comment
User Comments (0)
About PowerShow.com