1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
aliina [53]
4 years ago
8

Write a program that reads numbers from a file (or allow user to input data) and creates an ordered binary tree. The program sho

uld display the tree in a text or graphics format then allow user to add values to it, or remove/delete values from it. The program should also allow the user to print the tree in different order forms (LNR, NLR, LRN).
Computers and Technology
1 answer:
IgorLugansk [536]4 years ago
7 0

Answer:

See explaination

Explanation:

include<bits/stdc++.h>

using namespace std;

typedef struct Node

{

int data;

struct Node *left,*right;

}Node;

bool search(Node *root,int data)

{

if(root==NULL)

return false;

if(root->data==data)

return true;

queue<Node*> q;

q.push(root);

while(!q.empty())

{

Node *temp=q.front();

q.pop();

if(temp->data==data)

return true;

if(temp->left)

q.push(temp->left);

if(temp->right)

q.push(temp->right);

}

return false;

}

Node *insert(Node *root,int data)

{

if(root==NULL)

{

Node *temp=new Node();

temp->data=data;

temp->left=NULL;

temp->right=NULL;

return temp;

}

if(data < root->data)

root->left=insert(root->left,data);

if(data>root->data)

root->right=insert(root->right,data);

return root;

}

Node *get_smallest_element_right_subtree(Node *root)

{

while(root && root->left!=NULL)

root=root->left;

return root;

}

Node *delete_node(Node *root,int data)

{

if(root==NULL)

return root;

if(data < root->data)

root->left=delete_node(root->left,data);

else if(data > root->data)

root->right=delete_node(root->right,data);

else

{

if(root->left==NULL) //If right only presents means - delete the curr node and return right node

{

Node *temp=root->right;

free(root);

return temp;

}

else if(root->right==NULL) //If left only presents means - delete the curr node and return let node

{

Node *temp=root->left;

free(root);

return temp;

}

else

{

Node *temp=get_smallest_element_right_subtree(root->right);

root->data=temp->data;

root->right=delete_node(root->right,temp->data);

}

return root;

}

}

void inorder(Node *root)

{

if(root!=NULL)

{

inorder(root->left);

cout<<root->data<<" ";

inorder(root->right);

}

}

void postorder(Node *root)

{

if(root!=NULL)

{

inorder(root->left);

inorder(root->right);

cout<<root->data<<" ";

}

}

void preorder(Node *root)

{

if(root!=NULL)

{

cout<<root->data<<" ";

inorder(root->left);

inorder(root->right);

}

}

int main()

{

fstream f;

string filename;

cout<<"\n\n1 - Input through File ";

cout<<"\n\n2 - Input through your Hand";

int h;

cout<<"\n\n\nEnter Your Choice : ";

cin>>h;

Node *root=NULL; // Tree Declaration

if(h==1)

{

cout<<"\n\nEnter the Input File Name : ";

cin>>filename;

f.open(filename.c_str());

if(!f)

cout<<"\n\nError in Opening a file !";

else

{

cout<<"\n\nFile is Being Read ........";

string num;

int value;

int node=0;

while(f>> num)

{

value=stoi(num);

root=insert(root,value);

node++;

}

cout<<"\n\nTree has been successfully created with : "<<node<<" Nodes"<<endl;

}

}

if(h==2)

{

int y;

cout<<"\n\nEnter the Total No of Input :";

cin>>y;

int i=1,g;

while(i!=y+1)

{

cout<<"\n\nEnter Input "<<i<<" : ";

cin>>g;

root=insert(root,g);

i++;

}

cout<<"\n\nTree has been successfully created with : "<<y<<" Nodes"<<endl;

}

if(h>=3)

{

cout<<"\n\nInvalid Choice !!! ";

return 0;

}

int n=0;

while(n!=6)

{

cout<<"\n\n\n1 - Insert Element";

cout<<"\n\n2 - Remove Element";

cout<<"\n\n3 - Inorder (LNR) Display ";

cout<<"\n\n4 - Pre (NLR) Order Display";

cout<<"\n\n5 - Post (LRN) Order Display";

cout<<"\n\n6 - Quit";

cout<<"\n\nEnter Your Choice : ";

cin>>n;

switch(n)

{

case 1:

{

int k;

cout<<"\n\nEnter Element to insert : ";cin>>k;

root=insert(root,k);

cout<<"\n\nElement Sucessfully Inserted !!!!!";

break;

}

case 2:

{

int k;

cout<<"\n\nEnter Element to Remove : ";

cin>>k;

if(search(root,k))

{

root=delete_node(root,k);

cout<<"\n\nValue Successfully Deleted !!!";

}

else

cout<<"\n\n!!!!!!!!!!!!!!!!!!!! No Such Element !!!!!!!!!!!!!!!!!!!!!!";

break;

}

case 3:

{

cout<<"\n\nThe Elements (LNR) are : ";

inorder(root);

break;

}

case 4:

{

cout<<"\n\nThe Elements (NLR) are : ";

preorder(root);

break;

}

case 5:

{

cout<<"\n\nThe Elements (LRN) are : ";

postorder(root);

break;

}

case 6:

{

break;

}

}

}

cout<<"\n\nBye!!!! See You !!!"<<endl;

You might be interested in
Select the correct answer from each drop-down menu.
Fofino [41]
I think it’s 1, 2 and if im wrong im sorry
4 0
3 years ago
Plz answer and dont put a random thing for the points
Anton [14]

<u><em>answer</em></u>: it it mostly likely to be the one that says "choose font style"

<u><em>explain</em></u>: im in advanced tech class so i think i know what this is:D

hope i helped you!:D

6 0
3 years ago
What command is used to locate all occurrences of the word "dog" in a document?
rosijanka [135]

Microsoft Word can easily find text in your document. This search is handled by the Find command. To locate the occurrences of the word dog in a word document, you can either click the find button on the home tab or press the combination keys ctrl+F and type the word dog. You also press ctrl+G. The Find and Replace dial box will pop up, with the Go To tab displayed. You will go ahead and click the Find tab and type the word dog.

3 0
3 years ago
Read 2 more answers
Zoey has brought her computer in for servicing. When she dropped off her computer, she mentioned that her computer will sometime
galina1969 [7]

Answer:

Option (B) Overheated CPU

Explanation:

  • The above problems mentioned are due to the problem with the CPU.
  • Overheated CPU can result into freezing the computer and unexpected rebooting.
  • CPU stands for Central Processing Unit and is responsible for all the instabilities in the hardware parts of the computer.
  • So, option (b) is true.
  • A Network Card is responsible for connecting the computer to the internet. It also has other names like Ethernet Card. A bad Network Card results in problems with the internet and network connections but not the above problems. So, option (A) is false.
  • UPS is Uninterrupted Power Supply. It is an external power device to provide the power supply to the computers in case of emergencies to not shut down the computer instantaneously. The above problems are not likely to be the caused by the failed UPS. So, option (C) is false.
  • Drive is a hardware device to store information. It can be removable drive (optical drives like CDs, DVDs ) or non removable like ( Hard Disk Drive ). A failed drive results in problems with the storing information. The above problems are not associated with it. So, option (D) is also false.
6 0
3 years ago
Read 2 more answers
Which of the following are examples of software? Check all of the boxes that apply.
dezoksy [38]

Hey!

------------------------------------------

<h3>Answers:</h3>

Operating System

Web Browser

Word Processor

Device Driver

------------------------------------------

<h3>Explanation:</h3>

Software is a set of data that tells the computer what to do. Each of the answer above tell the computer something specific to do.

The operating system are basic functions that make the computer run smoothly.

The web browser is telling the computer you want to look something up like in internet explorer, firefox, and chrome.

The word processor is a piece of software that tells the computer that you want to format a piece of text like in Microsoft word.

The device driver is a piece of software that controls a connected device like a phone or another computer.

------------------------------------------

Hope This Helped! Good Luck!

4 0
3 years ago
Read 2 more answers
Other questions:
  • 50+ POINTS AND BRAIN IF CORRECT Chris is working with other employees on a worksheet. The other employees have made comments, bu
    8·1 answer
  • Where can you access email accounts on your windows 7 computer in order to modify current accounts or create new ones?
    5·1 answer
  • Consider an interface p ublic interface NumberFormatter { String format (in n); } Provide four classes that implement this inter
    15·1 answer
  • Is bit stuffing necessary in the control or address field in theHDLC protocol? why?
    13·1 answer
  • What is the answers please
    10·1 answer
  • Write the name of the tab, command group, and icon that is used to create multilevel lists.
    12·1 answer
  • Which sentence(s) below are true?a. IP stands for Internet Protocol.b. In most home networks IP addresses are assigned by the In
    6·1 answer
  • What equipment allows a computer to connect to the internet.
    13·1 answer
  • What are common considerations businesses need to make before purchasing new computers? Check all of the boxes that apply.
    6·1 answer
  • Write a program that prompts the user for two numbers then outputs the result of dividing the first number by the second number
    10·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!