Contoh Pemrograman Binary Tree in C++ - Pohon biner adalah struktur data dasar yang digunakan dalam ilmu komputer . Pohon biner adalah struktur data yang berguna untuk menyimpan data diurutkan cepat dan cepat mengambil data yang tersimpan .
Sebuah pohon biner terdiri dari node induk , atau daun , yang masing-masing menyimpan data dan juga link ke hingga dua node anak lainnya ( daun ) yang dapat divisualisasikan spasial sebagai berikut node pertama dengan satu ditempatkan ke kiri dan dengan satu ditempatkan ke kanan .
Ini adalah hubungan antara daun terkait dan daun menghubungkan , juga dikenal sebagai node induk , yang membuat pohon biner struktur data yang efisien . Ini adalah daun di sebelah kiri yang memiliki nilai kunci yang lebih rendah (yaitu , nilai yang digunakan untuk mencari daun di pohon ) , dan itu adalah daun di sebelah kanan yang memiliki nilai kunci yang sama atau lebih besar . Akibatnya , daun di sebelah kiri terjauh dari pohon memiliki nilai terendah , sedangkan daun di sebelah kanan pohon memiliki nilai terbesar. Lebih penting lagi , karena setiap daun terhubung ke dua daun lain , itu adalah awal yang baru , lebih kecil , pohon biner . Karena sifat ini , adalah mungkin untuk dengan mudah mengakses dan memasukkan data dalam sebuah pohon biner menggunakan pencarian dan memasukkan fungsi rekursif meminta daun berturut-turut .
Contoh
Pemrograman Binary Search Tree in C++
|
#include <stdio.h>
#include
<stdlib.h>
#include
<conio.h>
#include
<cstdlib>
typedef
struct tree{
int data;
tree *left;
tree *right;
};
tree *pohon;
void
init(tree **pohon){
pohon=NULL;
}
int
isempty(){
if(pohon==NULL){
return 1;
}
else
return 0;
}
void
tambah(tree **root, int databaru){
if((*root) == NULL){
tree *baru;
baru = new tree;
baru->data = databaru;
baru->left = NULL;
baru->right = NULL;
(*root)= baru;
(*root)->left= NULL;
(*root)->right= NULL;
}
else if(databaru <(*root)->data){
tambah(&(*root)->left,databaru);}
else if(databaru >(*root)->data){
tambah(&(*root)->right,databaru);}
else if(databaru ==(*root)->data){
printf("Data sudah ada!");}
}
void
preorder (tree *root){
if(root!=NULL){
printf("%d", root->data);
preorder(root->left);
preorder
(root->right);
}
}
void
inorder (tree *root){
if(root!=NULL){
inorder(root->left);
printf("%d", root->data);
inorder
(root->right);
}
}
void
postorder (tree *root){
if(root!=NULL){
postorder(root->left);
postorder
(root->right);
printf("%d", root->data);
}
}
int
main(){
tambah(&pohon,2);
tambah(&pohon,4);
tambah(&pohon,1);
printf("Pre Order\n");
preorder(pohon);
printf("\n");
printf("In Order\n");
inorder(pohon);
printf("\n");
printf("Post Order\n");
postorder(pohon);
getch();
}
|
EmoticonEmoticon