Tugas 4_ Binary Tree 1144112

15:23 Pemrograman Web 0 Comments

video




Tree adalah sebuah struktur linier, biasanya digunakan untuk menggambarkan hubungan yang bersifat hirarkis antara elemen-elemen yang ada. Ada beberapa istilah dalam tree ini, yang mana masing-masing istilah  mempunyai arti dalam kaitannya dengan hirarki antar elemen dalam tree tersebut, seperti sibling, descendant dsb.
Dalam ilmu komputer, tree adalah sebuah struktur data yang secara bentuk menyerupai sebuah pohon, yang terdiri dari serangkaian node (simpul) yang saling berhubungan. Node-node tersebut dihubungkan oleh sebuah vektor. Setiap node dapat memiliki 0 atau lebih node anak (child). Sebuah node yang memiliki node anak disebut node induk (parent). Sebuah node anak hanya memiliki satu node induk. Sesuai konvensi ilmu komputer, tree bertumbuh ke bawah, tidak seperti pohon di dunia nyata yang tumbuh ke atas. Dengan demikian node anak akan digambarkan berada di bawah node induknya.Selain itu, pembuatan tree menggunakan linked list sangat efisien bagi pemrosesannya

Berikut contoh source kode untuk binary tree
  #include <stdlib.h>
    #include <stdio.h>
    #define info(p) (p)->info
    #define left(p) (p)->left
    #define right(p) (p)->right
    typedef struct treenode *data;
    typedef struct treenode{
     int info;
     data right;
     data left;
     }node;
     data root;
    void insert(data *tree, int elem){
     //Kamus
     data item;
     //Algoritma
     item = (data) malloc (sizeof(node));
     left (item) = right(item) = NULL;
     info (item) = elem;
      if(!(*tree)){
      *tree = item;
      return;
     }
     if(info(item) < info(*tree))
      insert(&left(*tree),elem);
     else if(info(item) > info(*tree))
      insert(&right(*tree), elem);
    }
    //Buat prosedur inorder, preorder, postorder, main program
    void inorder(data *tree){
     if(*tree != NULL){
      inorder(&left(*tree));
      printf(" %d ", info(*tree));
      inorder(&right(*tree));
     }
    }
    void preorder(data *tree){
     if(*tree != NULL){
      printf(" %d ", info(*tree));
      preorder(&left(*tree));
      preorder(&right(*tree));
     }
    }           
    void postorder(data *tree){
     if(*tree != NULL){
      postorder(&left(*tree));
      postorder(&right(*tree));
      printf(" %d ", info(*tree));
       }
    }
    //Program Utama
    int main(){
     insert (&root,2);
     insert (&root,3);
     insert (&root,1);
     insert (&root,4);
      printf("Inorder  : ");
     inorder(&root);
     printf("\n");
     printf("Preorder : ");
     preorder(&root);
     printf("\n");
     printf("Postorder: ");
     postorder(&root);
     printf("\n");
     return 0;
    }
Link : https://github.com/Silvianatita/Binary-tree

0 komentar: