laporan praktikum resmi 2

Upload: chris-naugthy-boyz

Post on 09-Oct-2015

22 views

Category:

Documents


1 download

DESCRIPTION

Nama : Chris FebriyantoNIM : 201001017Mata Kuliah : Algoritma & Str Data II

TRANSCRIPT

LAPORAN PRAKTEK RESMITREE

Disusun oleh:Chris Febriyanto201001017

Dosen pengampu:Yosef Murya Kusuma Ardhana, S.T

JURUSAN SISTEM INFORMASISEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSOPURWOKERTO2014 BAB ITEORI DASAR

A. Pohon BinerSebuah tree yang pada masing-masing simpulnya hanya dapat memiliki maksimum 2 (dua) simpul anak, tidak boleh lebih. Pada pohon biner, umumnya kedua node anak (child) disebut dengan posisinya, yaitu subordinat kiri dan subordinat kanan.

Untuk melakukan konversi telah disepakati cara penomoran setiap node dalam binary tree sebagai berikut : Jika sebuah node bernomor n, maka subordinat kiri bernomor 2n dan subordinat kanan bernomor 2n+1. Node root diberi nomor 1.Penomoran node binary tree dapat diilustrasikan seperti pada gambar berikut ini :

AAAAAAn15

CBCBCB 2n 2n+1 2 3 10 11

Dengan mengetahui dari nomor setiap node maka sebuah binary tree dapat dipresentasikan ke dalam sebuah array satu dimensi. Perhatikan contoh berikut ketika binary tree dipresentasikan ke dalam array satu dimensi.

GHFCAABED-------------------------------------- level 0

--------------------------- level 1

--------------------------- level 2

I --------------------------- level 3Dengan menggunakan penomoran di atas, maka untuk menyimpan sebuah binary tree dengan depth = d, perlu disiapkan array satu dimensi dengan jumlah elemen minimal sebanyak 2^(d+1)-1 elemen.Operasi pada binary tree merupakan satu rangkaian proses yang dapat dibagi menjadi beberapa bagian operasi (fungsi) seperti :1. Inisialisasi2. Pembuatan sebuah node.3. Pembuatan node akar.4. Penambahan (insert) node baru ke dalam sebuah tree.5. Penghapusan (delete) node dari sebuah tree.6. Pembacaan atau penelusuran binary tree.

BAB IIPENJELASAN PROGRAM #include #include #include #define Nil NULLusing namespace std;

struct nod{struct nod *left;char data;struct nod *right;};

typedef struct nod NOD;typedef NOD POKOK;

NOD *NodBaru (char item){NOD *n;n=(NOD *)malloc(sizeof(NOD));if(n!=Nil){n->data=item;n->left=Nil;n->right=Nil;}return n;}

void BinaPokok (POKOK **T){ *T=NULL; }

typedef enum {FALSE=0, TRUE=1} BOOL;BOOL PokokKosong (POKOK *T){return ((BOOL)(T==Nil));}

void TambahNod (NOD **p, char item){NOD *n;n=NodBaru(item);*p=n;}

void preOrder (POKOK *T){if(!PokokKosong(T)){coutleft);coutright);coutright, buah='I');TambahNod(&kelapa->left->right->right, buah='L');TambahNod(&kelapa->right, buah='O');TambahNod(&kelapa->right->left, buah='D');

cout