1 / 23

TREE

TREE. Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini Ika Khoi run N. Indah Nur alifia. TREE. merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hierarkis ( hubungan one to many) antara elemen-elemen .

lysa
Download Presentation

TREE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TREE • Oleh : • NenysilviaNurhidayah • AfnywilujengSetyorini • IkaKhoirun N. • Indah Nuralifia

  2. TREE • merupakansalahsatubentukstruktur data tidak linear yang menggambarkanhubungan yang bersifathierarkis (hubunganone to many) antaraelemen-elemen. • Tree secarabentukmenyerupaisebuahpohon, yang terdiridariserangkaian • Node (simpul) yangsalingberhubungan. • Sesuaikonvensiilmukomputer, tree bertumbuhkebawah, tidaksepertipohon di dunianyata yang tumbuhkeatas

  3. Structur Tree • Root adalah node yang memilikihirarkitertinggi. Semuanode dapatditelusuridariroot. • R ,S dan T adalah Internal Node • Level darisebuah node adalahukuranjarak node tersebutterhadapakar • X merupakan node induk(parent) dari Y dan Z • Y dan Z merupakan node anak (Child) dari X • Node yang dibawah Root adalahSubtree(cabang). • leaf (daun)  adalahSebuah node yang tidakmemilikianak.

  4. ISTILAH DALAM TREE • Prodecessor: node yang beradadiatasnodetertentu. • Successor : node yang berada di bawahnodetertentu. • Ancestor : seluruhnode yang terletaksebelumnodetertentu dan terletak pada jalur yang sama. • Descendant : seluruhnode yang terletaksesudahnodetertentu dan terletak pada jalur yang sama. • Parent: predecssorsatulevel di atas suatunode. • Child : successorsatulevel di bawahsuatunode. • Sibling : node-node yang memilikiparent yang sama dengansuatunode. • Subtree : bagiandaritree yang berupasuatunodebesertadescendantnya dan memilikisemuakarakteristikdaritreetersebut. • Size: banyaknyanodedalamsuatutree. • Height: banyaknyatingkatan/leveldalamsuatutree. • Root: satu-satunyanodekhususdalamtree yang takpunyapredecssor. • Leaf: node-nodedalamtree yang takmemilikiseccessor. • Degree : banyaknyachild yang dimilikisuatunode.

  5. Binary Tree Suatutree dimanatiap node hanyabolehmemilikimaksimalduasubtreedankeduasubtreetersebutharusterpisah. Padapohonbiner, umumnyakedua node anakdisebutdenganposisinya, yaituKiridankanan . Deklarasi Tree struct node { int data; //menyimpannilainode structnode *left; structnode *right;}; // kiridankananbertipe left right label a a b c b c

  6. Jenis binary tree: • Full Binary Tree • Complete Binary Tree  • Incomplete Binary Tree (Unbalanced Tree)  • Skewed Binary Tree

  7. Full Binary Tree Semua node (kecuali leaf) memilikinolatau2 anakdantiapsubtreememilikipanjangpath yang sama.

  8. Complete Binary Tree • miripdengan full binary tree,tapitiapsubtreebolehmemilikipanjang path yang berbedadantiap node (kecuali leaf) memiliki 2 anak • Seluruhnode pada level N-1 terisiseluruhnyadanpada level N node yangkosongadalah node kanan

  9. Full Binary Tree Binary tree yang semuanodenya (kecuali leaf) hanyamemilikisatuanak.

  10. Operasi-operasipada Tree Create:membentuksebuah tree baru yang kosong. Clear:menghapussemuaelemen tree. Empty:mengetahuiapakah tree kosongatautidak. Insert: menambah node ke dalam Tree secara rekursif. Find:mencari node di dalam Tree secararekursifsampainode tersebutditemukandenganmenggunakanvariable bantuanketemu. Syaratnyaadalah tree tidakbolehkosong. Traverse: yaituoperasikunjunganterhadapnode-node dalampohondimanamasing-masingnode akandikunjungisekali. Count: menghitungjumlah node dalam Tree Height : mengetahuikedalamansebuah Tree Find Min dan Find Max : mencarinilaiterkecildanterbesarpadaTree Child : mengetahuianakdarisebuah node (jikapunya)

  11. Menambahkan Node Pada Tree • 1. Jikapohonkosong, maka node baruditempatkansebagaiakarpohon • 2. Jikapohontidakkosong, makadimulaidari node akar, dilakukan proses pengecekanberikut: • a. Jikanilai node barulebihkecildarinilai node yang sedangdicek, makalihatkekirinode tersebut. • Jikakiri node tersebutkosong (belummemilikikiri), maka node barumenjadikiri node yang sedangdicek. • Seandainyakiri node sudahterisi, lakukankembalipengecekan a dan b terhadap node kiritersebut. • Pengecekaninidilakukanseterusnyahingga node barudapatditempatkan. 5 Menambahkan node baru nilai 5 : 10 6 8 5 3

  12. b. Jikanilai node barulebihbesardarinilai node yang sedangdicek, makalihatkekanannodetersebut. • Jikakanan node tersebutkosong (belummemilikikanan), maka node barumenjadikanan node yang sedangdicek. • Seandainyakanan node sudahterisi, lakukankembalipengecekana dan b terhadap node kanantersebut. Pengecekaninidilakukanseterusnyahingga node barudapatditempatkan 11 Menambahkan node baru nilai 11 : 10 6 8 3 5 11

  13. Proses penambahaninidiimplementasikansecararekursifpadafungsiberikut: Variabel **root menunjukkan node mana yang sedangdiceksaatini, untukitusaatpemanggilanfungsiini, variabel **root kitaberinilai pointer yang menunjukke node akar, yaitupohon

  14. MembacadanMenampilkanNodePada Tree Untukmembacadanmenampilkanseluruh node yang terdapatpadapohonbiner, terdapat 3 macamcara, atau yang biasadisebutkunjungan (visit). • KunjunganPre-Order • KunjunganIn-Order • Kunjungan Post-Order

  15. 1.KunjunganPre-Order • Kunjunganpre-order dilakukanmulaidariakarpohon, denganurutan: • Cetakisi(data) node yang sedangdikunjungi • Kunjungikiri node tersebut • Jikakiribukankosong (tidakNULL) mulailagidarilangkahpertama, terapkanuntukkiritersebut. • Jikakirikosong(NULL), lanjutkelangkahketiga. • 3. Kunjungikanan node tersebut, • Jikakananbukankosong (tidakNULL) mulailagidarilangkahpertama, terapkanuntukkanantersebut. • Jikakanankosong(NULL), proses untuk node iniselesai, tuntaskan proses yang samauntuk node yang dikunjungisebelumnya.

  16. 2.KunjunganIn-Order • 1.Kunjungi kiri node tersebut, • Jikakiribukankosong (tidakNULL) mulailagidarilangkahpertama, terapkanuntukkiritersebut. • Jikakirikosong(NULL), lanjutkelangkahkedua. • 2. Cetakisi(data) node yang sedangdikunjungi • 3. Kunjungikanan node tersebut, • Jikakananbukankosong (tidakNULL)mulailagidarilangkahpertama, terapkanuntukkanantersebut. • Jikakanankosong(NULL), proses untuk node iniselesai, tuntaskan proses yang samauntuk node yang dikunjungisebelumnya.

  17. 3.Kunjungan Post-Order 1. Kunjungikiri node tersebut, •Jikakiribukankosong (tidakNULL) mulailagidarilangkahpertama, terapkanuntukkiritersebut. •Jikakirikosong( NULL), lanjutkelangkahkedua. 2. Kunjungikanan node tersebut, •Jikakananbukankosong (tidakNULL) mulailagidarilangkahpertama, terapkanuntukkanantersebut. •Jikakanankosong(NULL), lanjutkelangkahketiga. 3. Cetakisi(data) node yang sedangdikunjungi. Proses untuk node iniselesai, tuntaskanproses yang samauntuk node yang dikunjungisebelumnya GDBHIEFCA

  18. Searching in Tree Pencariandilakukansecararekursif, dimulaidari node root, jika data yang dicarilebihkecildaripada data node root, makapencariandilakukan di sub node sebelahkiri, sedangkanjika data yang dicarilebihbesardaripada data node root, makapencariandilakukan di sub node sebelahkanan, jika data yang dicarisamadengan data suatu node berartikembalikan node tersebutdanberarti data ditemukan.

  19. Keterangan Searching Root = 6 dan 8 > 6, makaakandicari di sub node bagiankanan root. Root = 10 dan 8 < 10, makaakandicari di sub node bagiankiri root. Root = 7 dan 8 > 7, makaakandicari di sub node bagiankanan root. Root = 8, berarti 8 = 8, maka akan dikembalikan node tersebut dan dianggap ketemu!

  20. Jumlah Node Tree Penghitunganjumlah node dalam tree dilakukandengancaramengunjungisetiap node, dimulaidari root kesubtreekiri, kemudiankesubtreekanandanmasing-masing node dicatatjumlahnya, danterakhirjumlah node yang ada di subtreekiridijumlahkandenganjumlah node yang ada di subtreekananditambah 1 yaitu node root.

  21. Kedalaman (height) Node Tree Penghitungankedalamandihitungdarisetelah root, yang dimulaidarisubtreebagiankirikemudiankesubtreebagiankanan. Untukmasing-masingkedalamankiridankananakandibandingkan, jikaternyatasubtreekirilebihdalam, maka yang dipakaiadalahjumlahkedalamansubtreekiri, demikiansebaliknya. Hal inididasarkanpadaprinsip binary tree, dimana tree-nyaselalumemilikimaksimal 2 node anak.

  22. Sekian

More Related