subject
Engineering, 29.02.2020 01:00 quece233

I need help writing these functions for my code. In the homework this week you started reading and programming binary search trees. The one missing piece was inserting into a binary search tree; we'll take care of that today and write the insert function, as well as a height function. Both functions will be implemented in the "bst. h" header file, and tested using a provided main program in "main. cpp".Step one is to implement the insert function --- go ahead and modify "bst. h", adding the necessary code to (1) allocate a new node, and (b) link it into the tree. Once you have insert implemented, test your work using Codio's interactive terminal window. In this exercise we are building a tree of strings, with "#" as the sentinel. Example:#Size: 6Inorder: apple aunt dad mom pizza uncleHeight: 3You'll know the tree is built properly if the inorder output is in sorted order --- if not, then your insert function is not linking the new nodes into the tree correctly. Ignore the height for now (which is probably displayed as -1).Once insert is working, step two is to implement the height function in "bst. h". Since height needs to recursively traverse the entire tree, you'll want to take a public-private approach where a private helper function does the actual work of computing the height. Here is the main. cpp:#include #include #include "bst. h"using namespace std;int main(){binarysearchtree tree;string key; 1. Inputs values from the keyboard and builds a binary search// tree; reads input until the sentinel ("#") is input. The// resulting binary search tree is returned.//cin >> key;while (key != "#"){tree. insert(key);cin >> key;} 2. Output size and contents (in order)://cout << "Size: " << tree. size() << endl;tree. inorder(); 3. Output height://cout << "Height: " << tree. height() << endl;// done:return 0;}Here is the bst. h:#pragma once#include #include // std::maxusing namespace std;templateclass binarysearchtree{private:struct NODE{TKey Key;NODE* Left;NODE* Right;};NODE* Root; // pointer to root node of tree (nullptr if empty)int Size; // # of nodes in the tree (0 if empty) _inorder does the actual inorder traversal and output// to console. Each key is output to the console followed// by " ", including the last key.//void _inorder(NODE* cur){if (cur == nullptr)return;else{_inorder(cur-&g t;Left);cout << cur->Key << " ";_inorder(cur->Right);}}public: default constructor: Creates an empty tree.//binarysearchtree(){Root = nullptr;Size = 0;} size: Returns the # of nodes in the tree, 0 if empty.//int size(){return Size;} height Computes and returns height of tree; height of an empty tree is// defined as -1.//int height(){ TODO:// return -1;} search: Searches the tree for the given key, returning true if found// and false if not.//bool search(TKey key){NODE* cur = Root;while (cur != nullptr){if (key == cur->Key) // already in treereturn true;if (key < cur->Key) // search left:{cur = cur->Left;}else{cur = cur->Right;}}//while // if get here, not foundreturn false;} insert Inserts the given key into the tree; if the key has already been insert then// the function returns without changing the tree.//void insert(TKey key){NODE* prev = nullptr;NODE* cur = Root; 1. Search to see if tree already contains key://while (cur != nullptr){if (key == cur->Key) // already in treereturn;if (key < cur->Key) // search left:{prev = cur;cur = cur->Left;}else{prev = cur;cur = cur->Right;}}//while 2. if we get here, key is not in tree, so allocate// a new node to insert: TODO: allocate a new node, store key, initialize// pointer fields: 3. link in the new node: NOTE: cur is null, and prev denotes node where// we fell out of the tree. if prev is null, then// the tree is empty and the Root pointer needs// to be updated. TODO: link in the new node, updating Root// pointer as appropriate 4. update size and we're done:// TODO://} inorder: Performs an inorder traversal of the tree, outputting// the keys to the console.//void inorder(){cout << "Inorder: ";_inorder(Root);cout << endl;}};

ansver
Answers: 2

Other questions on the subject: Engineering

image
Engineering, 04.07.2019 18:10, ashleybaber4966
If a particle moves along a path such that r : (3 sin t) m and ? : 2t rad, where t is in seconds. what is the particle's acceleration in m/s in 4 seconds? a)- 16.43 b)- 16.29 c)- 15.21 d)- 13.79
Answers: 1
image
Engineering, 04.07.2019 18:10, anna22684
Water at 70°f and streams enter the mixing chamber at the same mass flow rate, determine the temperature and the quality of the exiting stream. 0 psia is heated in a chamber by mixing it with saturated water vapor at 20 psia. if both streams enters the mixing chamber at the same mass flow rate, determine the temperature and the quality of the existing system.
Answers: 2
image
Engineering, 04.07.2019 18:20, myahlit84
Inadequate stores control is not an obstacle to effective work order system. (clo4) a)-true b)-false
Answers: 3
image
Engineering, 04.07.2019 19:10, jennymares
Abarometer contains mercury with a density of 13600 kg/m3. atmospheric conditions are 95.8 kpa and 20 °c at 20 °c, the vapor pressure of the mercury is 0.000173 kpa. the column of mercury will rise to a height of most nearly. select one: a)- 0.38 m b)- 0.82 m c)- 0.48 m d)- 0.72 m
Answers: 1
You know the right answer?
I need help writing these functions for my code. In the homework this week you started reading and p...

Questions in other subjects:

Konu
Mathematics, 23.01.2021 01:00
Konu
Mathematics, 23.01.2021 01:00