Tree.doc

  • Upload
    fangga1

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

  • 7/21/2019 Tree.doc

    1/12

    BINARY TREE (POHON BINER)oleh : Bambang Wahyudi

    Pohon biner T didefinisikan sebagai kumpulan elemen/ simpul (nodes) yang :

    (a) T hampa (disebut pohon hampa / null tree/ empty tree), atau

    (b) T memiliki akar R yang memiliki cabang Tdan T!"kar R disebut root, cabang Tdan T!disebut dengan substree#dari R# $ika Ttidak hampa, maka T disebut %uga dengan left successordari R, begitu %ugadengan T!yang tidak hampa, disebut dengan right successordari R#

    Perhatikan diagram treeT sebagai berikut :

    "

    B

    & '

    *

    $ +

    ,

    *ambar # Pohon T#

    Pohon T tersebut : () memiliki nodes-

    (!) Nodes " disebut dengan root, posisi teratas daridiagram-

    memiliki dera%at masuk ., dan dera%at keluar .-(!) NodesB disebut left successordari "- adalah right

    successordari "-(!) NodesB, &, ', dan merupakan left substreedari "#

    Nodes, *, , $, +, dan merupakan right substreedari"#

    0etiap nodesdari treeT memiliki (dera%at keluar) ., , atau ! successor# Nodesyang tidak memiliki successor (dera%at masuk 1 , dan dera%at keluar 1 .),

    disebut terminal nodes, yang biasa diistilahkan dengan leaf(daun)# Pohon binerT dan T2 dikatakan sama (similar) bila memiliki struktur yang sama, meskipundengan elemen yang berbeda# $ika elemennya sama %uga, maka keduanyadisebut salinan (copies)#

    Perhatikan penggambaran diagram pohon biner atas ekspresi al%abar sebagaiberikut : ' 1 ( a 3 b ) / (( c 4 d ) 5 e )

  • 7/21/2019 Tree.doc

    2/12

    angkah3langkahnya adalah :

    () sederhanakan bentuk ekspresi tersebut hingga men%adi ! operand, operator# Perhatikan pula kaidah operasi (dera%at operator) matematisnya#

    ' 1 ( a 3 b ) / (( c 4 d ) 5 e )

    6 / ( y 5 e ) 7 0oalnya men%adi : ' 1 6 / 7

    &iagramnya :

    /

    6 7

    (!) Transformasikan kembali ke soal sebelumnya : 6 1 a 3 b, diagramnya men%adi :

    /

    3

    a b

    7

    7 1 y 5 e, diagramnya men%adi :

    /

    5

    e

    3

    a b y

    y 1 c 4 d, diagram akhirnya men%adi :

    /

    5

    e

    3

    a b 4

    c d

    *ambar !# Pohon '

  • 7/21/2019 Tree.doc

    3/12

    Terminologi pohon: Bila sebuah pohon diibaratkan sebuah keluarga, makaperhatikan gambar di atas :

    () B adalah parent(orang3tua) atau father(ayah) dari & dan ' (disebut %ugadengan predecessor)# 0ebaliknya, & adalah left child (anak kiri), dan 'adalah right child(anak kanan) dari B-

    (!) & dan ' disebut siblings(brother) atau bersaudara-(8) 0etiap garis yang menghubungkan antara satu node dengan node lain

    disebut dengan ruas (edge)-(9) Edge-edgeyang saling berhubungan dan membentuk satu %alur disebut

    denganpath-() Pathyang berakhir di leafdisebut dengan branch#(;) Tingkatan (level) pohon dimulai dengan . pada root3nya dan seterusnya

    bertambah di setiap keturunannya (descendant)-(ah, dan dari kiri ke kanan, dan setiap ayahmaksimal memiliki ! anak# Berikut contoh pohon komplet T#

    ! 89 :

    *ambar 8# Pohon +omplet T

    Pada pohon komplet tersebut, bila + adalah sebuah nodes, maka nodesayahakan memiliki nodesanak3anaknya dengan rumus (+ 4 !) untuk anak kiri, dan (+4 ! 5 ) untuk anak kanan# 0ebaliknya nodesanak akan memiliki nodesayahnya

    dengan rumus +/!, atau ?@T(+/!)#

    &i setiap tingkat (leAel), memilikinodes

    maksimal sebanyak !

    n

    , di mana n 1level# +edalaman/ ketinggian (&n) sebuah pohon komplet (Tn) dihitung denganrumus :

    &n 1 log!n 5 C

    $adi, %ika kita memiliki pohon komplet dengan %umlah nodes sebanyak#...#..., maka ketinggian/ kedalaman pohon tersebut 1 !#

  • 7/21/2019 Tree.doc

    4/12

    "dapun ketinggian minimum pohon biner secara umum rumusnya :

    &min 1 log!n 5

    dan ketinggian maksimumnya adalah se%umlah banyaknya simpul (nodes)#

    0ebuah pohon biner dikatakan memiliki ketinggian seimbang bila substree kiridan substreekanannya hanya berbeda maksimal tingkat ( level)#

    Extended Binary Trees : 2-Trees

    Extended binary trees diciptakan untuk melakukan operasi yang bersifatmatematis# Pohon biner dapat di%adikan extended binary trees dengan caramembuat setiap nodesnya terdiri dari . atau ! anak#

    0etiap nodes di pohon biner yang memiliki ! anak disebut dengan internalnodes, dan yang memiliki . anak disebut external nodes# Perhatikan gambar9(a), pohon biner T yang DdikonAersi2 men%adi pohon3!, di mana setiap nodesnyadibuat (ditambahkan) agar memiliki . atau ! anak#

    *ambar 9(a)# Pohon Biner T *ambar 9(b)# Extended 2-Trees

    Penya%ian Binary Tree di &alam Eemori +omputer

    Penya%ian pohon biner di memori ada dua cara, yaitu penya%ian kait ( link linkedlist), dan arraytunggal (se!uential)#

    Fntuk penya%ian kait, lihat di gambar

  • 7/21/2019 Tree.doc

    5/12

    a

    bc

    d

    a

    b c

    d

    *ambar (a)# Pohon Biner T *ambar (b)# *ambar Pohon Biner T2

    $elas, yang pada pohon biner T, simpul b yang merupakan anak kiri dari simpula, pada pohon biner T2, simpul b men%adi anak kanan dari simpul a# 0ehingga T2tidak sama dengan T# al ini tidak berlaku di pohon umum, %ika gambar (a) dan(b) itu merupakan pohon umum, maka T2 1 T#

    Fntuk mengalihkan pohon umum men%adi pohon biner, caranya :

    () &ari root ke kiri (atau ke level berikutnya %ika hanya ada kaitan),digambarkan bertingkat ke kiri-

    (!) 0etiap nodes yang selevel (bersaudara) di pohon umum digambarkanbertingkat ke kanan-

    ontoh :

    a

    b c

    d e f g

    a

    b

    d c

    e

    f

    g

    *ambar ;(a)# Pohon Fmum *ambar ;(b)# asil +onAersi ke Pohon Biner

    Pen%elasan : nodes a, b, dan d digambar tetap (bertingkat ke kiri)# Node bmemiliki saudara c, sehingga c digambarkan ke tingkat berikutnya di kanannya#Noded punya saudara e dan f, sehingga e dan f digambarkan bertingkat kekanan# Node c memiliki kaitan dengan g (hanya node), maka node gdigambarkan ke tingkat berikutnya di kiri##

    Traversing Binary Trees (Rute +un%ungan)

    "da 8 cara standar untuk melakukan traversingdalam binary trees, yaitu inorder#preorder# dan postorder$

    Perhatikan diagram pohon biner R berikut ini :

  • 7/21/2019 Tree.doc

    6/12

    5

    /

    e

    3

    a b G

    c d

    *ambar

  • 7/21/2019 Tree.doc

    7/12

    (!) kun%ungi simpul kirinya, bila simpul itu merupakan rootsubstreenya, makacetak simpul itu-

    (8) ulangi proses (!) hingga simpul itu bukan merupakan simpul rootsubstree#

    (9) cetak simpul itu (terakhir kun%ungan)-() kembali ke root substreesnya (bila sudah tidak ada lagi simpul di kiri dan

    kanannya, kembali ke root di atasnya)(;) bila masih ada simpul di kanannya, kun%ungi simpul itu-(

  • 7/21/2019 Tree.doc

    8/12

    +

    /

    e

    -

    a b ^

    c dmulai

    *ambar .# 0kema +un%ungan Postorder

    atatan untuk melakukan pengecekan a>al kun%ungan yang benar :

    Padapreorder : root trees berada di posisi a>al postorder: root trees di posisi paling akhir

    Rumus a>al : inorder 1 " 5 B preorder 1 5 " B postorder1 " B 5

    B%N'() *E'(+, T(EE* (PII@ "R? B?@'R) :

    Pohon cari biner adalah pohon biner yang dirancang untuk menskemakanurutan data yang akan dimasukkan ke dalam memori agar proses pencarian,penghapusan dan penambahan data dapat ber%alan secara efisien dibandingdengan pemasukan data secara arraymaupun link$

    0ifat dari skema pohon cari biner adalah : () setiap elemen yang berada di leftsubstreesselalu lebih kecil dari elemen yang ada di right substrees, (!) setiapelemen yang berada di right substreesselalu lebih besar atau sama denganelemen yang berada di left substrees#

    ontoh : diketahui sekumpulan elemen sebagai berikut :

    ;., al skema pohon binernya berturut3turut sebagai berikut :

  • 7/21/2019 Tree.doc

    9/12

    ;.

    (a)!:

    ;.

  • 7/21/2019 Tree.doc

    10/12

    ;.

    !:

  • 7/21/2019 Tree.doc

    11/12

    ;.

    !:

  • 7/21/2019 Tree.doc

    12/12

    ara manual :

    $ika diketahui inorder, P 1 ( a 5 b ) / (c 3 d ) 4 e, maka pencarian preorderdanpostordernya adalah :

    Penyederhanaan soal men%adi : ( a 5 b ) / (c 3 d ) 4 e 6 / y 4 e 7 4 e

    makapreordernya 1 4 7 ekarena 7 1 6 / y, yangpreordernya 1 / 6 ymaka hasil gabungannya 1 4 / 6 y e

    +arena 6 1 a 5 b, yangpreordernya 1 5 a bmaka hasil gabungannya 1 4 / 5 a b y e

    +arena y 1 c 3 d, yangpreordernya 1 3 c d

    maka hasil akhirnya men%adi : 4 / 5 a b 3 c d e

    Fntuk cara yang sama, makapostordernya dari yang paling sederhana berturut3turut men%adi : () 7 e 4

    (!) 6 y / e 4(8) a b 5 y / e 4(9) a b 5 c d 3 / e 4

    &iagram treenya :

    /

    a b

    5

    c d

    3

    4

    e

    *ambar $ Binary TreeP