Convert the following java program to C++ import java.util.Scanner; class Nd { N
ID: 3596162 • Letter: C
Question
Convert the following java program to C++
import java.util.Scanner;
class Nd
{
Nd lt, rt;
int data;
public Nd(int n)
{
lt = null;
rt = null;
data = n;
}
}
class Bt
{
private Nd root;
public Bt()
{
root = null;
}
public void insert(int data)
{
root = insert(root, data);
}
private Nd insert(Nd node, int data)
{
if (node == null)
node = new Nd(data);
else
{
if (data <= node.data)
node.lt = insert(node.lt, data);
else
node.rt = insert(node.rt, data);
}
return node;
}
public void inorder()
{
inorder(root);
}
private void inorder(Nd r)
{
if (r != null)
{
inorder(r.lt);
System.out.print(r.data +" ");
inorder(r.rt);
}
}
public void preorder()
{
preorder(root);
}
private void preorder(Nd r)
{
if (r != null)
{
System.out.print(r.data +" ");
preorder(r.lt);
preorder(r.rt);
}
}
public void postorder()
{
postorder(root);
}
private void postorder(Nd r)
{
if (r != null)
{
postorder(r.lt);
postorder(r.rt);
System.out.print(r.data +" ");
}
}
}
public class Main
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
Bt bst = new Bt();
System.out.println("Linked List Binary Search Tree ");
char ch;
do
{
System.out.println("Enter integer to insert");
bst.insert( scan.nextInt() );
System.out.print(" Post_order : ");
bst.postorder();
System.out.print(" Pre_order : ");
bst.preorder();
System.out.print(" In_order : ");
bst.inorder();
System.out.println(" Do you want to continue (Type y or n) ");
ch = scan.next().charAt(0);
} while (ch == 'Y'|| ch == 'y');
}
}
Linked List Binary Search Tree Enter integer to insert 10 Postorder : 10 Pre order 1e In order10 Do you want to continue (Type y or n) - Enter integer to insert 20 Post order 20 10 Pre order 10 20 In order 10 20 Do you want to continue (Type y or n) Enter integer to insert 30 Post_order: 30 20 19 Pre order 10 20 30 In order 10 20 30 Do you want to continue (Type y or n)Explanation / Answer
Here is the code :
#include <bits/stdc++.h>
using namespace std;
class Nd {
public :
Nd *lt;
Nd *rt;
int data;
Nd(int n) {
data = n;
}
};
class Bt {
Nd *root;
Nd* insert(Nd *node, int data) {
if (node == 0)
node = new Nd(data);
else {
if (data <= node -> data)
node -> lt = insert(node -> lt, data);
else
node -> rt = insert(node -> rt, data);
}
return node;
}
void inorder(Nd *r) {
if (r != 0) {
inorder(r -> lt);
cout<<r -> data<<" ";
inorder(r -> rt);
}
}
void preorder(Nd *r) {
if (r != 0) {
cout<<r -> data<<" ";
preorder(r -> lt);
preorder(r -> rt);
}
}
void postorder(Nd *r) {
if (r != 0) {
postorder(r -> lt);
postorder(r -> rt);
cout<<r -> data<<" ";
}
}
public :
Bt() {
root = 0;
}
void insert(int data) {
root = insert(root, data);
}
void inorder() {
inorder(root);
}
void preorder() {
preorder(root);
}
void postorder() {
postorder(root);
}
};
int main() {
Bt *bst = new Bt();
cout<<"Linked List Binary Search Tree "<<endl;
char ch;
do {
cout<<"Enter integer to insert"<<endl;
int data;
cin>>data;
bst -> insert(data);
cout<<" Post_order : ";
bst -> postorder();
cout<<" Pre_order : ";
bst -> preorder();
cout<<" In_order : ";
bst -> inorder();
cout<<" Do you want to continue (Type y or n) "<<endl;
cin>>ch;
} while (ch == 'Y' || ch == 'y');
}
**If you have any query , please feel free to comment with details.
**Happy leaning :)