(binary search tree c++)i am having issues with my code i am able to insert names into into the tree but they do not save(it says tree is empty). i will show you a picture of my output(black background) and a picture of the desired output(white background), i will also include my source main and .h class.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
icon
Concept explainers
Question

(binary search tree c++)i am having issues with my code i am able to insert names into into the tree but they do not save(it says tree is empty). i will show you a picture of my output(black background) and a picture of the desired output(white background), i will also include my source main and .h class.

//bt.cpp - file contains member functions
#include "bt.h"
#include <iostream>
using namespace std;
//Constructor
BT::BT()
{
    root = NULL;
}

//Insert new item in BST
void BT::insert(string d)
{
    node* t = new node;
    node* parent;

    t->data = d;
    t->left = NULL;
    t->right = NULL;
    parent = NULL;

    if (isEmpty())
        root = t;
    else
    {
        //Note: ALL insertions are as leaf nodes
        node* curr;
        curr = root;
        // Find the Node's parent
        while (curr)
        {
            parent = curr;
            if (t->data > curr->data)
                curr = curr->right;
            else
                curr = curr->left;
        }
        if (t->data < parent->data)
            parent->left = t;
        else
            parent->right = t;
    }
}

//Function - Preorder traversing driver
void BT::print_preorder()
{
    preorderTrav(root);
}
//Function - Preorder traversing
void BT::preorderTrav(node* p)
{
    if (isEmpty())
    {
        cout << "    Tree is empty." << endl;
        return;
    }

    if (p != NULL)
    {
        cout << "        " << p->data;

        if (p->left != NULL)
            cout << "               " << p->left->data;
        else
            cout << "              NIL";

        if (p->right != NULL)
            cout << "             " << p->right->data << endl;
        else
            cout << "            NIL" << endl;

        preorderTrav(p->left);
        preorderTrav(p->right);
    }
    else
        return;
}

//Function - Inorder traversing driver
void BT::print_inorder()
{
    inorderTrav(root);
}
//Function - Inorder traversing
void BT::inorderTrav(node* p)
{
    if (isEmpty())
    {
        cout << "    Tree is empty." << endl;
        return;
    }

    
    if (p != NULL)
    {
        inorderTrav(p->left);

        cout << "        " << p->data;

        if (p->left != NULL)
            cout << "               " << p->left->data;
        else
            cout << "              NIL";

        if (p->right != NULL)
            cout << "             " << p->right->data << endl;
        else
            cout << "            NIL" << endl;

        inorderTrav(p->right);
    }
    else
        return;
}__________________________________________________________________________

#include "bt.h"
#include<string>
#include <iostream>
using namespace std;
int main()
{
    BT b;
    int ch, num;
    string d;

    cout << "-----------Menu-------------" << endl;
    cout << endl;
    cout << "1. Insert node(s)" << endl;
    cout << "2. Traverse Preorder" << endl;
    cout << "3. Traverse Inorder" << endl;
    cout << "4. Traverse Inorde" << endl;
    cout << "5. Quit" << endl << endl;

    do
    {
        cout << endl << "Enter Your Choice <1 - 5> ";
        cin >> ch;
        switch (ch)
        {
        case 1:
            cout << "Enter number of nodes to insert: ";
            cin >> num;
            for (int i = 0; i<num; i++)
            {
                cout << endl;
                cout << "Enter node: ";
                cin >> d;
                //b.insert(toupper(d));
                cout << "Inserted." << endl;

            }
            break;
        case 2:
            cout << endl;
            cout << "Traversing Preorder" << endl;
            cout << "    Node Info    Left Child Info         Right Child Info" << endl;
            cout << "    ---------    ---------------         ----------------" << endl;
            b.print_preorder();
            cout << endl;
            break;
        case 3:
            cout << endl;
            cout << "Traversing Inorder" << endl;
            cout << "    Node Info    Left Child Info         Right Child Info" << endl;
            cout << "    ---------    ---------------         ----------------" << endl;
            b.print_inorder();
            cout << endl

__________________________________________________________________________

#include <iostream>
#ifndef BT_H
#define BT_H
using namespace std;

class BT
{
private:
    struct node
    {
        string data;  //whatever is the data type; use that
        node* left;
        node* right;
    };
    node* root;
public:
    BT();                                            //Constructor
    bool isEmpty() const { return root == NULL; }    //Check for empty
    void insert(string);                                //Insert item in BST
    void print_preorder();                            //Preorder traversing driver
    void preorderTrav(node*);                        //Preorder traversing

 

 

 

Sample output:
Traversing Preorder
Node Info Left Child Info Right Child Info
KIM
DON
PAM
TOM
DON
NIL
NIL
NIL
PAM
NIL
TOM
NIL
Transcribed Image Text:Sample output: Traversing Preorder Node Info Left Child Info Right Child Info KIM DON PAM TOM DON NIL NIL NIL PAM NIL TOM NIL
---
-Menu-
1. Insert node(s)
2. Traverse Preorder
3. Traverse Inorder
4. Traverse Inorde
5. Quit
Enter Your Choice <1 - 5> 1
Enter number of nodes to insert: 4
Enter node: KIM
Inserted.
Enter node: PAM
Inserted.
Enter node: DAN
Inserted.
Enter node: TOM
Inserted.
Enter Your Choice <1 - 5> 2
Traversing Preorder
Node Info
Tree is empty.
Left Child Info
Right Child Info
Transcribed Image Text:--- -Menu- 1. Insert node(s) 2. Traverse Preorder 3. Traverse Inorder 4. Traverse Inorde 5. Quit Enter Your Choice <1 - 5> 1 Enter number of nodes to insert: 4 Enter node: KIM Inserted. Enter node: PAM Inserted. Enter node: DAN Inserted. Enter node: TOM Inserted. Enter Your Choice <1 - 5> 2 Traversing Preorder Node Info Tree is empty. Left Child Info Right Child Info
Expert Solution
steps

Step by step

Solved in 4 steps with 5 images

Blurred answer
Knowledge Booster
Depth First Search
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education