please implement the remove function here is a given code of bst.h and bst.cpp _
ID: 3707853 • Letter: P
Question
please implement the remove function
here is a given code of bst.h and bst.cpp
_____________________________________________________________________________________________________
bst.h
class btree{
public:
btree();
void insert(int index, int entry);
int root(int index);
int left(int index);
int right(int index);
int size();
void display();
private:
int data[100];
int used;
};
_____________________________________________________________________________________________________
bst.cpp
#include <iostream>
#include "bst1.h"
#include <cmath>
using namespace std;
btree::btree() {
used=0;
for(int i=0;i<100;i++){
data[i]=0;
}
}
void btree::insert(int index, int entry) {
if(data[index]==0){
data[index]=entry;
used++;
}
else if(data[index]>entry){
insert(2*index+1, entry);
}
else if(data[index]<entry){
insert(2*index+2, entry);
}
}
int btree::root(int index) {
return data[index];
}
int btree::left(int index) {
return data[2*index+1];
}
int btree::right(int index) {
return data[2*index+2];
}
int btree::size() {
return used;
}
void btree::display(){
int row=ceil(log2(size()+1));
int space=1;
int index1=0;
for(int i=0;i<row;i++){
for(int j=0; j<20-pow(2.0,i);j++){
cout<<" ";
}
for(int k=0; k<pow(2.0,i);k++)
{
cout<<data[index1]<<" ";
index1++;
}
cout<<endl;
}
}
void pre(btree b1, int index){
//if(b1.left(index)==0 && b1.right(index)==0){
//cout<<b1.root(index)<<" ";
//}
cout<<b1.root(index)<<" "; // 3
if(b1.left(index)!=0)
pre(b1, 2*index+1); // 1
if(b1.right(index)!=0)
pre(b1, 2*index+2); // 2
}
void in(btree b1, int index){
//if(b1.left(index)==0 && b1.right(index)==0){
//cout<<b1.root(index)<<" ";
//}
if(b1.left(index)!=0)
in(b1, 2*index+1); // 1
cout<<b1.root(index)<<" "; // 3
if(b1.right(index)!=0)
in(b1, 2*index+2); // 2
}
void post(btree b1, int index){
//if(b1.left(index)==0 && b1.right(index)==0){
//cout<<b1.root(index)<<" ";
//}
if(b1.left(index)!=0)
post(b1, 2*index+1); // 1
if(b1.right(index)!=0)
post(b1, 2*index+2); // 2
cout<<b1.root(index)<<" "; // 3
}
int main(){
btree b1;
b1.insert(0, 25);
b1.insert(0, 15);
b1.insert(0, 50);
b1.insert(0, 10);
b1.insert(0, 20);
b1.insert(0, 30);
b1.insert(0, 60);
b1.display();
cout<<"pre order traversal: ";
pre(b1, 0);
cout<<endl;
cout<<"in order traversal: ";
in(b1, 0);
cout<<endl;
cout<<"post order traversal: ";
post(b1, 0);
}
Explanation / Answer
#include "btree.h"
#include <iostream>
#include <cmath>
using namespace std;
btree::btree(){
used=0;
for(int i=0;i<100;i++){
data[i]=0;
}
}
void btree::insert_entry(int index, int entry){
if(data[index]==0){
data[index]=entry;
used++;
}
else if(data[index]>entry){
insert_entry(2*index+1, entry);
}
else if(data[index<entry]){
insert_entry(2*index+2, entry);
}
}
int btree::root(int index){
return data[index];
}
int btree::left(int index){
return data[2*index+1];
}
int btree::right(int index){
return data[2*index+2];
}
int btree::size(){
return used;
}
void btree::display(){
int row=ceil(log2(size()+1));
int space=1;
int index1=0;
for(int i=0;i<row;i++){
for(int j=0; j<20-pow(2.0,i);j++){
cout<<" ";
}
for(int k=0; k<pow(2.0,i);k++)
{
cout<<data[index1]<<" ";
index1++;
}
cout<<endl;
}
}
void inorder(btree b1, int index){
if(b1.left(index)==0 && b1.right(index)==0){
cout<<b1.root(index)<<" ";
}
else{
inorder(b1, 2*index+1);
cout<<b1.root(index)<<" ";
inorder(b1, 2*index+2);
}
}
int main(){
btree b1;
b1.insert_entry(0,25);
b1.insert_entry(0,15);
b1.insert_entry(0,50);
b1.insert_entry(0,10);
b1.insert_entry(0,22);
b1.insert_entry(0,35);
b1.insert_entry(0,70);
b1.insert_entry(0,4);
b1.insert_entry(0,12);
b1.insert_entry(0,18);
b1.insert_entry(0,24);
b1.insert_entry(0,31);
b1.insert_entry(0,44);
b1.insert_entry(0,66);
b1.insert_entry(0,90);
b1.display();
cout<<"inorder traversal : ";
inorder(b1,0);
}
btree.h file :
class btree{
public:
btree();
void insert_entry(int index, int entry);
int root(int index);
int left(int index);
int right(int index);
int size();
void display();
private:
int data[100];
int used;
};
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.