Pohon Umum (General Tree adalah pohon yang)

Dalam ilmu komputer, sebuah Pohon adalah suatu struktur data yang digunakan secara luas yang menyerupai struktur pohon dengan sejumlah simpul yang terhubung.

Sebuah contoh sederhana pohon tidak terurut.

Sebuah Simpul dapat mengandung sebuah nilai atau suatu kondisi atau menggambarkan sebuah struktur data terpisah atau sebuah bagian pohon itu sendiri. Setiap simpul dalam sebuah pohon memiliki nol atau lebih simpul anak (child nodes), yang berada dibawahnya dalam pohon (menurut perjanjian, pohon berkembang ke bawah, tidak seperti yang dilakukannya di alam). Sebuah simpul yang memiliki anak dinamakan simpul ayah (parent node) atau simpul leluhur (ancestor node) atau superior. Sebuah simpul paling banyak memiliki satu ayah. Tinggi dari pohon adalah panjang maksimal jalan ke sebuah daun dari simpul tersebut. Tinggi dari akar adalah tinggi dari pohon. Kedalaman dari sebuah simpul adalah panjang jalan ke akarnya dari simpul tersebut.

Daun (Leaf nodes)

 

9, 14, 19, 67 dan 76 adalah daun.

Semua simpul yang berada pada tingkat terendah dari pohon dinamakan daun (leaf node). Sejak mereka terletak pada tingkat paling bawah, mereka tidak memiliki anak satupun. Seringkali, daun merupakan simpul terjauh dari akar. Dalam teori grafik, sebuah daun adalah sebuah sudut dengan tingkat 1 selain akar (kecuali jika pohonnya hanya memiliki satu sudut; maka akarnya adalah daunnya juga). Setiap pohon memiliki setidaknya satu daun.

Dalam pohon berdasarkan genetic programming sebuah daun (juga dibilang terminal) adalah bagian terluar dari sebuah program pohon. Jika dibandingkan dengan fungsinya atau simpul dalam, daun tidak memiliki argumen. Di banyak kasus dalam daun-GP input ke programnya.

Simpul dalam (Internal nodes)

Sebuah simpul dalam adalah semua simpul dari pohon yang memiliki anak dan bukan merupakan daun. Beberapa pohon hanya menyimpan data di dalam simpul dalam, meskipun ini memengaruhi dinamika penyimpanan data dalam pohon. Sebegai contoh, dengan daun yang kosong, seseorang dapat menyimpan sebuah pohon kosong dengan satu daun. Bagaimanapun juga dengan daun yang dapat menyimpan data, tidak dimungkinkan untuk menyimpan pohon kosong kecuali jika seseorang memberikan beberapa jenis penanda data di daun yang menandakan bahwa daun tersebut seharusnya kosong (dengan demikian pohon itu seharusnya kosong juga).

Sebaliknya, beberapa pohon hanya menyimpan data dalam daun, dan menggunakan simpul dalam untuk menampung metadata yang lain, seperti jarak nilai dalam sub pohon yang berakar pada simpul tersebut. Jenis pohon ini berguna untuk jarak yang meragukan.

Sebuah sub pohon adalah suatu bagian dari pohon struktur data yang dapat dilihat sebagai sebuah pohon lain yang berdiri sendiri. Simpul apapun dalam pohon P, bersama dengan seluruh simpul dibawahnya, membentuk sebuah sub pohon dari P. Sub pohon yang terhubung dengan akar merupakan keseluruhan pohon tersebut. Sub pohon yang terhubung dengan simpul lain manapun dinamakan sub pohon asli (proper subtree)

Terdapat dua jenis pohon. Sebuah pohon tidak terurut (unordered tree) adalah sebuah pohon dalam arti struktural semata-mata, yang dapat dikatakan memberikan sebuah simpul yang tidak memiliki susunan untuk anak dari simpul tersebut. Sebuah pohon dengan suatu susunan ditentukan, sebagai contoh dengan mengisi bilangan asli berbeda ke setiap anak dari simpul tersebut, dinamakan sebuah pohon terurut (ordered tree), dan struktur data yang dibangun di dalamnya dinamakan pohon terurut struktur data (ordered tree data structures). Sejauh ini pohon terurut merupakan bentuk umum dari pohon struktur data. Pohon biner terurut merupakan suatu jenis dari pohon terurut.

Sebuah hutan adalah sebuah himpunan yang terdiri dari pohon terurut. Lintasan inorder, preorder, dan postorder didefinisikan secara rekursif untuk hutan.

  • inorder
  1. lewati inorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
  2. kunjungi akar dari pohon pertama.
  3. lewati inorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
  • preorder
  1. kunjungi akar dari pohon pertama.
  2. lewati preorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
  3. lewati preorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
  • postorder
  1. lewati postorder hutan yang dibentuk oleh sub pohon yang pertama dalam hutan, jika ada
  2. lewati postorder hutan yang dibentuk oleh sisa pohon dalam hutan, jika ada.
  3. kunjungi akar dari pohon pertama.

Ada banyak cara untuk menggambarkan pohon; pada umumnya penggambaran mewakili simpul sebagai rekor yang dialokasikan pada heap (bedakan dengan heap struktur data) yang mengacu pada anaknya, ayahnya, atau keduanya, atau seperti data materi dalam array, dengan hubungan diantaranya ditentukan oleh posisi mereka dalam array (contoh binary heap)

Pohon sebagai grafik

Dalam teori grafik, sebuah pohon adalah sebuah grafik asiklis yang terhubung. Pohon yang berakar merupakan sebuah grafik dengan sudut tunggal di luar sebagai akar. Dalam kasus ini, dua sudut apapun yang terhubung dengan sebuah sisi mewarisi hubungan orang tua dan anak. Sebuah grafik asiklis dengan bermacam-macam komponen yang terhubung atau himpunan dari pohon-pohon yang berakar kadang-kadang dipanggil hutan

Melangkah melalui materi dari pohon, dengan arti dari hubungan antara orang tua dan anak, dinamakan menelusuri pohon, dan tindakannya adalah sebuah jalan dari pohon. Seringkali, sebuah operasi mungkin dapat dilakukan sebagai penunjuk ysng mengacu pada simpul khusus. Sebuah penelusuran dimana setiap simpul ayah dikunjungi sebelum anaknya dinamakan pre-order walk; sebuah penelusuran dimana anaknya dikunjungi sebelum ayahnya masing-masing dinamakan post-order walk.

  • Menghitung seluruh materi (item)
  • Pencarian untuk sebuah materi
  • Menambahkan sebuah materi pada sebuah posisi tertentu dalam pohon
  • Menghapus sebuah materi
  • Mengeluarkan seluruh bagian dari sebuah pohon pruning
  • Menambahkan seluruh bagian ke sebuah pohon grafting
  • Menemukan akar untuk simpul apapun
  • Memanipulasi data secara hierarki
  • Membuat informasi mudah untuk dicari
  • Memanipulasi data sorted lists
  • Donald Knuth. The Art of Computer Programming: Fundamental Algorithms, Edisi Ketiga. Addison-Wesley, 1997. ISBN 0-201-89683-4 . Section 2.3: Trees, hal.308–423.
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, dan Clifford Stein. Introduction to Algorithms, Edisi Kedua. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7 . Section 10.4: Representing rooted trees, hal.214–217. Chapters 12–14 (Binary Search Trees, Red-Black Trees, Augmenting Data Structures), hal.253–320.
  • Descripsi dari Dictionary of Algorithms and Data Structures
  • STL-like C++ tree class[pranala nonaktif permanen]
  • List of data structures dari LEDA Diarsipkan 2007-10-23 di Wayback Machine.

Diperoleh dari "//id.wikipedia.org/w/index.php?title=Pohon_(struktur_data)&oldid=18070346"


TREE

Pohon (Tree) adalah graf terhubung yang tidak mengandung sirkuit. Karena merupakan graf terhubung maka pada pohon selalu terdapat path atau jalur yang menghubungkan kedua simpul di dalam pohon. Pohon dilengkapi dengan Root (akar).



Contoh : Pohon berakar T

 


Sifat utama pohon berakar :


1.   Jika pohon mempunyai simpul sebanyak n, maka banyaknya ruas adalah (n-1). Pada contoh : banyak simpul adalah 8 maka banyaknya ruas adalah 7.

2.   Mempunyai simpul khusus yang disebut Root (Akar), jika simpul tersebut memiliki derajat keluar  ³ 0 dan derajat masuk = 0. Simpul P merupakan root.

3.   Mempunyai simpul yang disebut Leaf (Daun), jika simpul tersebut memiliki derajat keluar = 0 dan derajat masuk = 1. Simpul R, S, V, W merupakan daun pada pohon T.

4.   Setiap simpul mempunyai tingkatan (level), dimulai dari root dengan level 0 sampai dengan level n pada daun yang paling bawah.

Pada contoh :

P            mempunyai level 0

Q, T       mempunyai level 1

R, S, U mempunyai level 2

V, W      mempunyai level 3

Simpul yang mempunyai level yang sama disebut Bersaudara (Brother)

5.   Pohon mempunyai ketinggian (kedalaman / height) yaitu                   level tertinggi +1. Ketinggian pohon T adalah 3+1 = 3

6.   Pohon mempunyai berat (bobot / weight) yaitu banyaknya daun pada pohon. Berat pohon T adalah 4

  


POHON BINER (BINARY TREE)


Pohon binar adalah himpunan simpul yang terdiri dari 2 subpohon (yang disjoint / saling lepas) yaitu subpohon kiri dan subpohon kanan.

Setiap simpul dari pohon binar mempunyai derajat keluar maksimum = 2.

Pendefinisian pohon  binar bersifat rekursif. Pohon binar acapkali disajikan dalam bentuk diagram.

 


Untuk menggambarkan suksesor kiri dan suksesor kanan, dibuat garis ke kiri bawah dan ke kanan bawah. B adalah suksesor kiri dari A, sedangkan C adalah suksesor kanan dari A. Subpohon kiri dari A mengandung simpul B, D, E dan F, sedangkan subpohon kanan mengandung simpul C, G, H, J, K dan L.

Pada contoh di atas :

Root adalah A

Simpul yang mempunyai 2 anak adalah simpul A, B, C dan H.

Simpul yang mempunyai 1 anak adalah simpul E dan J.

Simpul yang tidak mempunyai anak disebut daun (terminal) adalah D, F, G, K dan L.

Perhatikan pohon T1 dan T2 dan T3 ini :

 

Dua pohon binar disebut similar jika mempunyai struktur (bangun/susunan) pohon yang sama.

Contoh : Pohon binar T1 dan T2 adalah similar.

Kedua pohon binar disebut Salinan (Ekivalen/Copy) jika :

1.   Mempunyai struktur pohon yang sama (similar)

2.   Elemen yang sama pada simpul yang bersesuaian.

Contoh : Pohon binar T1 dan T3 adalah ekivalen

TERMINOLOGI PADA POHON BINAR

Terminologi hubungan keluarga banyak digunakan dalam terminologi pada pohon binar. Misalnya istilah anak kiri dan anak kanan, untuk menggantikan suksesor kiri dan suksesor kanan, serta istilah ayah untuk pengganti predesesor.

 

K misalnya adalah keturunan kanan dari D, tetapi bukan keturunan dari F, E ataupun M. Simpul G adalah ayah dari K dan L. Di sini K dan L adalah bersaudara, masing-masing anak kiri dan anak kanan dari G.

Garis yang ditarik dari Simpul N ke suksesor disebut Ruas dan sederetan ruas yang berturutan disebut Jalur atau path. Sebuah jalur yang berakhir pada daun (terminal) disebut Cabang.

Garis AD maupun GL adalah contoh ruas. Barisan ruas (AD, DG, GL) adalah jalur dari simpul A ke simpul L, jalur tersebut merupakan cabang, karena berakhir di simpul terminal (daun ) L.

Dari contoh pohon binar di atas :

Root : A

Simpul Daun adalah : F, K, L dan M

Level 0 adalah simpul A

Level 1 adalah simpul D dan E

Level 2 adalah simpul F, G dan M

Level 3 adalah simpul K dan L

Ketinggian (kedalaman) = 3 + 1 = 4

Berat (bobot) = 4

Cabang (AD, DG, GK) ataupun (AD, DG, GL) mengandung simpul dengan jumlah maksimum, yakni = 4, sedangkan cabang (AE, EM) serta (AD, DF) hanya mengandung 3 simpul.


Jika banyaknya simpul = N, maka :

1.   Ketinggian Minimum adalah : Hmin = INT(2log N) + 1

2.   Ketinggian Maksimum adalah : N

Ketinggian Minimum adalah : Hmin = INT(2log N) + 1

                                                      = INT(2log 8) + 1

                                                      = INT(2log 23) + 1

                                                      = INT(3) + 1

                                                      = 3 + 1

                                                      = 4

Ketinggian Maksimum adalah : 8

Penyajian pohon binar dalam memori dengan dua cara, yaitu :

1.   Penyajian Kait (link)

2.   Penyajian Sequential.

1.   PENYAJIAN KAIT

Kalau tidak dinyatakan lain, suatu pohon binar T akan disimpan dalam memori secara penyajian kait.

Penyajian ini menggunakan tiga array sejajar INFO, LEFT dan RIGHT, serta variabel penuding ROOT.

Masing-masing simpul N dari pohon T berkorespondensi dengan suatu lokasi K, sedemikan sehingga :

(1)  INFO(K) berisi data pada simpul N.

(2)  LEFT(K) berisi lokasi dari anak kiri simpul N.

(3)  RIGHT(K) berisi lokasi dari anak kanan simpul N.

 

Skema Penyajian Kait dari Pohon T

 


1.   PENYAJIAN SEQUENTIAL

Penyajian pada pohon binar T ini hanya menggunakan sebuah array linear tunggal TREE sebagai berikut :     

1.   Akar R dari pohon T tersimpan sebagai TREE[1]

2.   Jika simpul N menduduki TREE[K] maka anak kirinya tersimpan dalam TREE[2*K] dan anak kanannya dalam TREE[2*K+1]

 

 

Dapat dilihat bahwa penyajian membutuhkan 14 lokasi dalam array TREE, meskipun T hanya mempunyai 9 simpul. Kenyataannya, bila kita memasukkan elemen nol sebagai suksesor dari simpul terminal, dibutuhkan TREE[29] untuk suksesor kanan dari TREE[14].

Kita dapat menyajikan pohon umum secara pohon binar dengan algoritma sebagai berikut :

1.   Tambahkan ruas baru yang menghubungkan 2 simpul bersaudara yang berdampingan, lalu kita hapus ruas dari simpul ayah ke anak, kecuali ruas ke simpul anak paling kiri.

2.   Rotasikan sebesar 45° , searah putaran jarum jam terhadap pohon hasil langkah pertama.

 

 

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA