queue dan tree

5
QUEUE Queue = Antrian Elemen yang pertama kali masuk ke antrian akan keluar pertama kalinya FIFO (first in first out) DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian deklarasi #define MAX 8 typedef struct{ int data[MAX]; int head; int tail; } Queue; Queue antrian; OPERASI-OPERASI PADA QUEUE - Create() o Untuk menciptakan dan menginisialisasi Queue o Dengan cara membuat Head dan Tail = -1 IsEmpty() o Untuk memeriksa apakah Antrian sudah penuh atau belum o Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty

Upload: firmanwahyudi-anagti

Post on 17-Feb-2017

87 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Queue dan tree

QUEUE

Queue = Antrian

Elemen yang pertama kali masuk ke antrian akan keluar pertama kalinya FIFO (first in first out)

DEQUEUE adalah mengeluarkan satu elemen dari suatu Antrian

deklarasi

#define MAX 8

typedef struct{

int data[MAX];

int head;

int tail;

} Queue;

Queue antrian;

OPERASI-OPERASI PADA QUEUE

- Create()

o Untuk menciptakan dan menginisialisasi Queue

o Dengan cara membuat Head dan Tail = -1

IsEmpty()

o Untuk memeriksa apakah Antrian sudah penuh atau belum

o Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty

o Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala

antrian (elemen pertama dalam antrian) yang tidak akan berubahubah

o Pergerakan pada Antrian terjadi dengan penambahan elemen

Antrian kebelakang, yaitu menggunakan nilai Tail

Page 2: Queue dan tree

IsFull()

o Untuk mengecek apakah Antrian sudah penuh atau belum

o Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1

adalah batas elemen array C) berarti sudah penuh

Dequeue()

o Digunakan untuk menghapus elemen terdepan/pertama dari Antrian

o Dengan cara mengurangi counter Tail dan menggeser semua

elemen antrian kedepan.

o Penggeseran dilakukan dengan menggunakan looping

DEFINISI TREE / POHON

Tree bisa didefinisikan sebagai suatu kumpulan elemen salah satu elemennya disebut dengan akar (root), dan sisa elemen lainnya (yang disebut simpul) terpecah menjadi sejumlah himpunan yang paling tidak berhubungan satu sama lain, yang disebut dengan subpohon (

subtree), atau disebut juga cabang. Jika kita melihat pada subpohon, maka subpohon inipun juga mempunyai akar dan sub-subpohonnya masing-masing.

Dalam kehidupan sehari-hari, tree dapat dilihat dari pohon silsilah keluarga. Tingkat yang tertinggi disebut juga sebagai root.

Tingkat (level) suatu simpul ditentukan dengan pertama kali menentukan akar sebagai bertingkat 1. jika suatu simpul dinyatakan sebagai tingkat N, maka simpul-simpul yang merupakan anaknya dikatakan berada dalam tingkat N+1. pada pohon diatas merupakan tree dengan 5 level.

Selain tingkat, dikenal juga istilah derajad (degree) dari suatu simpul. Derajad suatu simpul dinyatakan sebagai banyaknya anak atau turunan dari simpul tersebut.

Tinggi (Height) atau Kedalaman (Depth) dari suatu pohon adalah tingkat maksimum dari suatu pohon dikurangi dengan satu. Dengan demikian pohon diatas mempunyai tinggi atau kedalaman sama dengan 4.

Hutan (Forest) adalah kumpulan sejumlah pohon yang tidak saling berhubungan. Dari gambar diatas jika kita menghapus simpul A maka akan terbentuk sebuah hutan.

Pohon Biner (Binary Tree)

Page 3: Queue dan tree

Pohon biner bisa didefinisikan sebagai suatu kumpulan simpul yang mungkin kosong atau mempunyai akar dan dua subpohon yang saling terpisah yang disebut dengan subpohon kiri dan sub pohon kanan. Subpohon disebut juga sebagai cabang. Karakteristik dari pohon biner ialah bahwa setiap simpul paling banyak hanya mempunyai dua buah anak. Dengan kata lain derajat tertinggi dari sebuah pohon biner adalah dua.

Pengertian daun, root, level, tinggi dan derajad yang berlaku pada pohon juga berlaku pada binary tree. Penyajian binary tree pada komputer di gunakan double link list.

Deklarasi Pohon

Setiap simpul pada pohon biner selalu berisi dua buah pointer yang menunjuk ke cabang kiri dan cabang kanan dengan melihat hal tersebut maka struktur double link list sangat cocok untuk di terapkan di dalam tree ini. Gambar

Membuat Pohon Biner

Untuk membuat pohon biner, terdapat aturan dalam penempatan simpulnya. Berikut ini merupakan algoritma penempatan sebuah simpul dalam pohon biner :

“Simpul yang berisi informasi yang nilainya lebih besar dari simpul diatasnya akan ditempatkan sebagai cabang kanan dan jika lebih kecil akan ditempatkan di cabang kiri.”

Proses untuk memperoleh pohon biner diatas adalah sebagai berikut : Karakter pertama ‘H’ ditempatkan sebagai Akar. Karakter ‘K’ karena lebih besar dari ‘H’ diletakkan dicabang kanan. Karakter ‘A’ karena lebih kecil dari ‘H’ akan menempati cabang kiri dari ‘H’. kemudian, karena karakter ‘C’ lebih kecil dari ‘H’ dan lebih besar dari ‘A’ maka ia di letakkan sebagai cabang kanan dari ‘A’. demikian seterusnya sampai semua masukkan di proses.

Untuk mengalokasikan simpul baru seperti diatas biasanya digunakan fungsi rekursif, untuk itu ada baiknya jika kita membuat fungsi baru agar proses rekursif untuk simpul dapat berlangsung sukses.

Kunjungan Pada Pohon Biner

Sebuah pohon biner memiliki operasi traversal yaitu suatu kunjungan pada suatu simpul tepat satu kali. Dengan melakukan kunjungan lengkap kita akan memperoleh urutan informasi secara linier yang tersinpan di dalam pohon biner.

Terdapat tiga jenis kunjungan pada pohon biner, yaitu :

1. PREORDER

Kunjungan jenis ini mempunyai urutan kunjungan sebagai berikut :

- Cetak isi simpul yang dikunjungi.

Page 4: Queue dan tree

- Kunjungi cabang kiri.

- Kunjungi cabang kanan.

2. INORDER

Kunjungan jenis ini mempunyai urutan kunjungan sebagai berikut :

- Kunjungi cabang kiri.

- Cetak isi simpul yang dikunjungi.

- Kunjungi cabang kanan.

3. POSTORDER

Kunjungan jenis ini mempunyai urutan kunjungan sebagai berikut :

- Kunjungi cabang kiri.

- Kunjungi cabang kanan.

- Cetak isi simpul yang dikunjungi.