Kunjungan pada pohon biner merupakan salah satu operasi yang sering di lakukan pada suatu pohon biner tepat satu kali(binary tree transversal). Binary tree dapat di implementasikan dalam C++. Operasi ini di bagi menjadi 3 bentuk :
1. Kunjungan secara PreOrder (Depth First Order)
2. Kunjungan secara InOrder (symmetric Order)
3. Kunjungan secara PostOrder
=> Kunjungan secara PreOrder (Depth First Order)
Mempunyai urutan :
a. Cetak isi simpul yang di kunjungi (simpul akar)
b. Kunjungi cabang kiri
- jika kiri bukan kosong (tidak Null) mulai lagi dari langkah pertama,
terapkan untuk kiri tersebut
- jika kiri kosong (Null), lanjutkan langkah ke tiga.
c. Kunjungi cabang kanan
- jika kanan bukan kosong (tidak Null) mulai lagi dari langkah pertama,
terapkan untuk kanan tersebut.
- jika kanan kosong (Null), proses untuk node ini selesai, tuntaskan proses
yang sama untuknode yang di kunjungi sebelumnya.
Void preorder(Node *root)
{
if(root !=NULL)
{
Printf(“%d”,root ->data);
preorder(root->kiri);
preorder(root->kanan);
}
}
=> Kunjungan secara InOrder (symmetric Order)
Mempunyai urutan :
a. Kunjungi cabang kiri
- jika kiri bukan kosong (tidak Null) mulai lagi dari langkah pertama,
terapkan untuk kiri tersebut.
- jika kiri kosong (Null), lanjut ke langkah kedua.
b. Cetak isi simpul yang di kunjungi (simpul akar)
c. Kunjungi cabang kanan jika kanan bukan kosong (tidak Null) mulai lagi dari langkah pertama,
terapkan untuk kanan tersebut
Void inorder ( Node *root )
{
If ( root != NULL )
{
Inorder ( root -> kiri );
Printf ( “%d” , root ->data );
Inorder ( root -> kanan );
}
}
- jika kanan kosong (Null), proses untuk node ini selesai, tuntaskan proses
yang sama untuk node yang di kunjungi sebelumnya.
=> Kunjungan secara PostOrder
Mempunyai urutan :
a. Kunjungi cabang kiri
- jika kiri bukan kosong (tidak Null) mulai lagi dari langkah pertama,
terapkan untuk kiri tersebut.
- jika kiri kosong (Null), lanjut ke langkah kedua.
b. Kunjungi cabang kanan
- jika kanan bukan kosong (tidak Null) mulai lagi dari langkah pertama,
terapkan untuk kanan tersebut.
- jika kanan kosong (Null), proses untuk node ini selesai, tuntaskan proses
yang sama untuk node yang di kunjungi sebelumnya.
c. Cetak isi simpul yang di kunjungi (simpul akar)
Void postorder ( Node *root )
{
If ( root != NULL )
{
Postorder ( root -> kiri );
Postorder ( root -> kanan );
Printf ( “%d” , root ->data );
}
}
Variabel **root pada setiap fungsi diatas menunjukan node mana yang
sedang dikunjungi saat ini, untuk itu saat pemanggilan variable **root kita
beri nilai pointer yangmenunjukan ke node akar. Pada ketiga cara
kunjungan di atas, kunjungan kecabang kiri di lakukan terlebih dahulu,
baru kemudian kunjungan ke cabang kanan.
Dengan orientasi semacam ini ketiga kunjungan di atasdi sebut dengan
left to right oriented atau LRO. Jika kunjungan ke cabang kanan di lakukan lebih dahulu baru kemudian kunjungan ke cabang kiri, maka orientasi
semacam ini di sebut right to left oriented atau RLO.
=> Penerapan dan Penyajian Pohon Biner
Tidak ada komentar:
Posting Komentar