• Tidak ada hasil yang ditemukan

Think Different Materi + UAS Mata Kuliah ASD (Semester Pendek) 7. ASD-Tree

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Materi + UAS Mata Kuliah ASD (Semester Pendek) 7. ASD-Tree"

Copied!
36
0
0

Teks penuh

(1)

Algoritma dan Struktur Data

(2)

Outline

1.

Apakah Tree Structure itu ?

2.

Binary Tree & implementasinya

3.

Tree Traversal

(3)

Apakah Tree Structure itu ?

Struktur data yang menunjukkan hubungan

bertingkat (memiliki hierarkhi)

Contoh: direktori/folder pada windows atau

linux

My Pictures My Music Struktur data

Pointer & Structure Linked list My Document

(4)

Nama komponen pada Tree

1

3

7

10 2

4 5 6

8 9

node root

leaf

leaf leaf

leaf leaf

node

(5)

Hubungan antar komponen

 Hubungan antar elemen: parent-child, father-son,

mother-daughter

 Nama node: nama(angka) yang dipakai untuk membedakan

sebuah node dengan node yang lain. Dalam kuliah ini adalah

angka yang tertulis dalam lingkaran.

 Label: nilai yang diingat oleh sebuah node

 Tree vs Graph

– Tree: setiap node kecuali root hanya memiliki sebuah parent

– Graph: dapat memiliki lebih dari sebuah parent

Contoh graph

1

3

7

10

4 5 6

(6)

Hubungan antar komponen

sibling

node-node yang

memiliki parent yang

sama

Ancestor dari node x

node yang ditemukan,

ketika menyusuri tree ke

atas dari node x

Descendant dari node x

node yang ditemukan

ketika menyusuri tree ke

bawah dari node x

1

3

7

10 2

4 5 6

(7)

Hubungan antar komponen

sibling

node-node

yang memiliki parent

yang sama

Ancestor dari node x

node yang ditemukan,

ketika menyusuri tree

ke atas dari node x

Descendant dari node

x

node yang

ditemukan ketika

menyusuri tree ke

bawah dari node x

1

3

7

10 2

4 5 6

(8)

Hubungan antar komponen

sibling

node-node yang

memiliki parent yang

sama

Ancestor dari node x

node yang ditemukan,

ketika menyusuri tree

ke atas dari node x

Descendant dari node x

node yang ditemukan

ketika menyusuri tree

ke bawah dari node x

1

3

7

10 2

4 5 6

(9)

Level

1

3

7

10 2

4 5 6

8 9

0

1

2

(10)

Sebuah tree didefinisikan sebagai struktur y ang dibentuk

secara recursive oleh kedua rule berikut:

1. Sebuah node adalah sebuah tree. Node satu-satunya

pada tree ini berfungsi sebagai root maupun leaf.

2. Dari k buah tree T

1

T

k

, dan masing-masing memiliki

root n

1

n

k

.Jika node n adalah parent dari noden

1

n

k

,

akan diperoleh sebuah tree baru T yang memiliki root n.

Dalam kondisi ini, tree T

1

T

k

menjadi sub-tree dari tree

T. Root dari sub-tree n

1

n

k

adalah child dari node n .

1

Tree

leaf

root

node

(11)

Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara recursive oleh kedua rule berikut:

1. Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini berfungsi sebagai root maupun leaf.

2. Dari k buah tree T1~Tk , dan masing-masing memiliki

root n1~nk.Jika node n adalah parent dari noden1~nk,

akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T1~Tkmenjadi sub-tree dari tree

T. Root dari sub-tree n1~nkadalah child dari node n .

Definisi TREE

T1 n1 T2 n

2 1

2

3

1

T3 n

3 T4 n4

2

1

(12)

2. Dari k buah tree T1~Tk , dan masing-masing memiliki

root n1~nk.Jika node n adalah parent dari noden1~nk,

akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T1~Tkmenjadi sub-tree dari tree

T. Root dari sub-tree n1~nkadalah child dari node n .

Definisi TREE

2

6 7 8

12 13

T1 n1 T2 n2 T3 n 5

3 T n4

4

n

T

4

11

14

9 10

3

(13)

Ordered vs Unordered tree

Ordered tree

– Antar sibling terdapat urutan “usia”

Node yang paling kiri berusia paling tua

(sulung), sedangkan node yang paling kanan

berusia paling muda (bungsu)

Posisi node diatur atas urutan tertentu

Unordered tree

(14)

Outline

1.

Apakah Tree Structure itu ?

2.

Binary Tree & implementasinya

3.

Tree Traversal

(15)

Definisi Binary Tree

1. Sebuah tree yang kosong juga merupakan sebuah binary tree 2. Binary tree harus memenuhi salah satu syarat berikut

 Tidak memiliki anak

 Memiliki subtree di sebelah kiri (left subtree)

 Memiliki subtree di sebelah kanan (right subtree)

 Memiliki baik left subtree maupun right subtree

a a

b

a

b

a

c b

a

b

Subtree (child) yang dimiliki bukan kiri maupun kanan

Definisi

(16)

left right label

struct node {

struct node *left; struct node *right; mydata label; }

a

c b

a

b c

(17)

Contoh

A H B C F D E G A H B C F D E G

14 18 A

26 38 B H

C 56 78 D

100 E F

G

10

14 18

26 38

56 78

(18)

Latihan 1

Gambarkan implementasi dari binary

tree berikut

D C

G A

F

E

J I

H B

10

20 30

40 50 60 70

(19)

Outline

1.

Apakah Tree Structure itu ?

2.

Binary Tree & implementasinya

3.

Tree Traversal

(20)

Definisi Tree Traversal

Teknik menyusuri tiap node dalam sebuah tree

secara sistematis, sehingga semua node dapat

dan hanya satu kali saja dikunjungi

Ada tiga cara traversal

preorder

inorder

postorder

(21)

Preorder

1.

Parent

2.

Traverse the left subtree

3.

Traverse the right subtree

A

H B

C

F D

E

G

A

H B

C

F D

E

G

(22)

Implementasi dalam bahasa C

struct node {

struct node *left; struct node *right; char label; }

void preorder(struct node *p) {

if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa

printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi

preorder(p->left); traverse the left subtree

preorder(p->right); traverse the right subtree

(23)

Inorder

1.

Traverse the left subtree

2.

Parent

3.

Traverse the right subtree

A

H B

C

F D

E

G

A

H B

C

F D

E

G

(24)

Implementasi dalam bahasa C

struct node {

struct node *left; struct node *right; char label; }

void inorder(struct node *p) {

if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa

inorder(p->left); traverse the left subtree

printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi

inorder(p->right); traverse the right subtree

(25)

Postorder

1.

Traverse the left

subtree

2.

Traverse the right

subtree

3.

Parent

A

H B

C

F D

E

G

A

H B

C

F D

E

G

(26)

Implementasi dalam bahasa C

struct node {

struct node *left; struct node *right; char label; }

void postorder(struct node *p) {

if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa

postorder(p->left); traverse the left subtree

postorder(p->right); traverse the right subtree

printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi

(27)

1. Parent

2. Traverse the left

subtree

3. Traverse the right

subtree

1. Traverse the left

subtree

2. Parent

3. Traverse the

right subtree

1. Traverse the left

subtree

2. Traverse the right

subtree

(28)

Latihan-2

A B C G D E F H L K I J

Tuliskan hasil preorder, inorder dan postorder traversal

untuk binary tree berikut.

1. Print

2. Traverse the left

subtree

3. Traverse the right

subtree

1. Traverse the left

subtree

2. Print

3. Traverse the

right subtree

1. Traverse the left

subtree

2. Traverse the right

subtree

(29)

Outline

1.

Apakah Tree Structure itu ?

2.

Binary Tree & implementasinya

3.

Tree Traversal

(30)

Teknik implementasi tree

Binary tree hanya memiliki dua anak: kiri dan kanan.

Karena itu implementasinya hanya memerlukan dua

buah pointer untuk masing-masing subtree.

Untuk implementasi tree yang memiliki sebarang

anak, dapat dilakukan dengan dua cara

(31)

1

2

6

3

4

5

(32)

1 23

1

2 6

3 4 5

2 77

3

4

5

6

5 37 35

10 87 15 95 25

3 5 10 15 25 35 23 37

77 87 95

label child

struktur yang

Merepresentasikan node

Implementasi memakai linked-list

(33)

1

2 6

3 4 5

label child sibling

1 1001

2 1003 1002 6

1000

1001 1002

3 1004

1003

4 1005

1004

(34)

1

2 6

3 4 5

1 1001

2 1003 1002 6

1000

1001 1002

3 1004

1003

4 1005

1004

5

(35)

Rotasi ke kanan 45°

1 1001

2 1003 1002 6

1000

1001 1002

3 1004

1003

4 1005

1004

5

(36)

Latihan-3

E

C H

G

K J

I

10

50 300

100 200 350 400

450 500

D 150

F

250

A

B

Jelaskan implementasi tree berikut a) memakai linked-list

Referensi

Dokumen terkait

Model U2 (Diketik) dilampiri fotokopi bukti pembayaran ujian dari Bank4. Fotokopi Sertifikat

Demikian permohonan ini dibuat, atas perhatiannya kami ucapkan terima kasih,. Malang, XXXXXX Hormat kami,

The ash content was lowest in the stem fraction for all species and at both harvest times, in leaf sheaths and especially in leaf blades the ash content was clearly higher (Table

Utilising as raw material only the fibrous frac- tion of miscanthus plants, the objectives of the present study were: (a) to investigate the feasibil- ity of obtaining papermaking

Fine chopping of stalk materials significantly influence compacting density and is more prefer- able to heating, because energy requirement for chopping − 25 kJ / kg is one order

The lactide ring opening polymerisation reaction reaches the state of equilibrium within the resi- dence time of the reactive material inside the extrusion system and can thus be

Dinyatakan LULUS / TIDAK LULUS dengan perbaikan skripsi seperti tercantum dalam tabel berikut dan dengan jangka waktu perbaikan 1 (satu)

Yang bertanda tangan di bawah ini menyatakan dengan sebenarnya, bahwa mahasiswa : Nama : NIM : Jurusan : ..4. Telah bebas dari tanggungan pinjaman selama tahun akademik