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(); } |