• Tidak ada hasil yang ditemukan

MODUL 7 BINARY SEARCH TREE

N/A
N/A
Protected

Academic year: 2022

Membagikan "MODUL 7 BINARY SEARCH TREE"

Copied!
4
0
0

Teks penuh

(1)

MODUL 7

BINARY SEARCH TREE

Pada tabel berikut ditunjukkan kode BST.cpp.

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

//========================================================

struct node { int data;

struct node *right;

struct node *left;

};

typedef struct node node;

node *createNode(int bil);

void insert(node **root, node *newNode);

void inorder(node *root);

node *findLargestBST(node *root);

bool deleteNode(node **root, int key);

void deleteBST(node **root);

//========================================================

void main() {

node *root, *pNew;

char pilih;

int bil;

bool success;

root = NULL;

do{

clrscr();

printf("masukkan pilihan\n");

printf("1. tambah data\n");

printf("2. hapus data\n");

printf("3. cetak isi tree secara inorder\n");

printf("MASUKKAN PILIHAN (tekan q untuk keluar) : ");

fflush(stdin);

scanf("%c", &pilih);

if (pilih == '1'){

printf("nilai yang akan dimasukkan ke tree: ");

scanf("%d", &bil);

pNew = createNode(bil);

if (pNew == NULL){

printf("insert gagal");

getch();

} else

insert(&root, pNew);

}

else if (pilih == '2'){

printf("nilai yang akan dihapus : ");

scanf("%d", &bil);

success = deleteNode(&root, bil);

if(!success){

printf("\ndata gagal dihapus");

getch();

(2)

} }

else if (pilih == '3'){

inorder(root);

getch();

}

} while (pilih != 'q');

deleteBST(&root);

}

//========================================================

node *createNode(int bil){

node *pNew;

pNew = (node *)malloc(sizeof(node));

if (pNew != NULL){

pNew->data = bil;

pNew->left = NULL;

pNew->right = NULL;

}

return(pNew);

}

void insert(node **root, node *newNode){

}

void inorder(node *root){

if (root != NULL){

inorder(root->left);

printf(" %d,", root->data);

inorder(root->right);

} }

node *findLargestBST(node *root){

if (root ->right == NULL) return(root);

else

return(findLargestBST(root->right));

}

bool deleteNode(node **root, int key){

}

void deleteBST(node **root){

while(*root != NULL)

deleteNode(root, (*root)->data);

}

1. Lengkapilah tree.cpp sehingga operasi insert dan delete berjalan dengan benar.

Algoritma algoritma insert ditunjukkan pada gambar berikut.

(3)

Algoritma delete ditunjukkan pada gambar berikut

(4)

2. Gambarkan perubahan pada tree ketika data-data berikut ditambahkan ke tree : 2, 7, 1, 89, 5, 23, 1

3. Gambarkan perubahan pada tree ketika data-data berikut dari tree : 89, 5, 23 4. Modifikasilah program sehingga pada operasi delete yang dihapus adalah node

dengan nilai terkecil pada right subtree

5. Buat algoritma tranverse sedemikian hingga node dikunjungi dengan urutan dari nilai besar ke kecil

6. Modifikasilah tree.cpp sehingga data yang nilainya lebih atau sama dengan node

diletakkan di left subtree node. Data yang nilainya kurang dari node diletakkan

di right subtree node.

Referensi

Dokumen terkait

POLITEKNIK NEGERI SRIWIJAYA JURUSAN TEKNIK

Permasalahan transportasi seperti kemacetan, keterlambatan akan terjadi sebagai akibat pergerakan atau perjalanan yang dilakukan sehingga terjadilah pemusatan asal

Peraturan Menteri Dalam Negeri Nomor 32 Tahun 2011 tentang Pedoman Pemberian Hibah dan Bantuan Sosial yang bersumber dari Anggaran Pendapatan dan Belanja Daerah sebagaimana

terlihat dimana keluarga sebagai tempat yang aman dan damai untuk istirahat dan belajar serta membantu penguasaan terhadap emosi, diantaranya menjaga hubungan

Terdapat penggunaan kayu olahan impor dalam proses produksi untuk periode bulan April 2020 s/d Maret 2021 di PT Pundi Uniwood Industry berdasarkan hasil laporan

[r]

rumah ,datang empat orang yang tidak dikenal oleh terdakwa yang diketahuai adalah petugas dari Satuan Narkoba Polres Tasikmalaya Kota, lalu terdakwa diminta untuk masuk

Mengetahui rata-rata waktu tunggu konsumen dalam sistem antrian dua servers tanpa menggunakan layanan movie card.. Mengetahui rata-rata waktu tunggu konsumen dalam