The definition for binary search tree should be the one used in class Class definition:                                                                       A BST is a binary tree that (if not empty) also follows two storage rules regarding its nodes’ items:       ♯ For any node n of the tree, every item in n’s left subtree (LST), if not empty, is less than the item in n ♯       ♯ For any node n of the tree, every item in n’s right subtree (RST), if not empty, is greater than the item in n ● bst_insert must be iterative (NOT recursive). ● bst_remove and bst_remove_max must use the algorithm described by the suggested book authors  In btNode.h: provide prototypes for bst_insert, bst_remove and bst_remove_max.   ● In btNode.cpp: provide definition (implementation) for bst_insert, bst_remove and bst_remove_ma #ifndef BT_NODE_H #define BT_NODE_H struct btNode {    int data;    btNode* left;    btNode* right; }; // pre:  bst_root is root pointer of a binary search tree (may be 0 for //       empty tree) and portArray has the base address of an array large //       enough to hold all the data items in the binary search tree // post: The binary search tree has been traversed in-order and the data //       values are written (as they are encountered) to portArray in //       increasing positional order starting from the first element void portToArrayInOrder(btNode* bst_root, int* portArray); void portToArrayInOrderAux(btNode* bst_root, int* portArray, int& portIndex); // pre:  (none) // post: dynamic memory of all the nodes of the tree rooted at root has been //       freed up (returned back to heap/freestore) and the tree is now empty //       (root pointer contains the null address) void tree_clear(btNode*& root); // pre:  (none) // post: # of nodes contained in tree rooted at root is returned int bst_size(btNode* bst_root); // pre:  bst_root is root pointer of a binary search tree (may be 0 for //       empty tree) // post: If no node in the binary search tree has data equals insInt, a //       node with data insInt has been created and inserted at the proper //       location in the tree to maintain binary search tree property. //       If a node with data equals insInt is found, the node's data field //       has been overwritten with insInt; no new node has been created. //       (Latter case seems odd but it's to mimick update of key-associated //       data that exists in more general/real-world situations.) // write prototype for bst_insert here // pre:  bst_root is root pointer of a binary search tree (may be 0 for //       empty tree) // post: If remInt was in the tree, then remInt has been removed, bst_root //       now points to the root of the new (smaller) binary search tree, //       and the function returns true. Otherwise, if remInt was not in the //       tree, then the tree is unchanged, and the function returns false. // write prototype for bst_remove here // pre:  bst_root is root pointer of a non-empty binary search tree // post: The largest item in the binary search tree has been removed, and //       bst_root now points to the root of the new (smaller) binary search //       tree. The reference parameter, removed, has been set to a copy of //       the removed item. // write prototype for bst_remove_max here #endif ============================== test case 1 of 990000 attempt to remove 5 values below: (sequential order) -2 8 -4 0 1 (value-sort order) -4 -2 0 1 8 from 8 values below: -8 -7 -6 -2 -1 0 1 2 gives (with 3 values successfully removed) -8 -7 -6 -1 2 ============================== test case 2 of 990000 attempt to remove 7 values below: (sequential order) 8 -3 -5 -4 5 6 4 (value-sort order) -5 -4 -3 4 5 6 8 from 6 values below: -8 -5 -4 -3 -2 3 gives (with 3 values successfully removed) -8 -2 3 ============================== test case 3 of 990000 attempt to remove 5 values below: (sequential order) 4 -6 -4 -1 6 (value-sort order) -6 -4 -1 4 6 from 11 values below: -8 -7 -6 -5 -4 -2 -1 0 5 6 7 gives (with 4 values successfully removed) -8 -7 -5 -2 0 5 7 ============================== test case 4 of 990000 attempt to remove 1 values below: (sequential order) 8 (value-sort order) 8 from 12 values below: -9 -8 -7 -6 -4 -3 -1 1 3 4 5 9 gives (with 0 values successfully removed) -9 -8 -7 -6 -4 -3 -1 1 3 4 5 9 ==============================

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
Question

The definition for binary search tree should be the one used in class

Class definition:                                                                  

    A BST is a binary tree that (if not empty) also follows two storage rules regarding its nodes’ items:  
    For any node n of the tree, every item in n’s left subtree (LST), if not empty, is less than the item in n  
    For any node n of the tree, every item in n’s right subtree (RST), if not empty, is greater than the item in n
bst_insert must be iterative (NOT recursive).
bst_remove and bst_remove_max must use the algorithm described by the suggested book authors 
In btNode.h: provide prototypes for bst_insertbst_remove and bst_remove_max.
  In btNode.cpp: provide definition (implementation) for bst_insertbst_remove and bst_remove_ma

#ifndef BT_NODE_H
#define BT_NODE_H

struct btNode
{
   int data;
   btNode* left;
   btNode* right;
};
// pre:  bst_root is root pointer of a binary search tree (may be 0 for
//       empty tree) and portArray has the base address of an array large
//       enough to hold all the data items in the binary search tree
// post: The binary search tree has been traversed in-order and the data
//       values are written (as they are encountered) to portArray in
//       increasing positional order starting from the first element
void portToArrayInOrder(btNode* bst_root, int* portArray);
void portToArrayInOrderAux(btNode* bst_root, int* portArray, int& portIndex);

// pre:  (none)
// post: dynamic memory of all the nodes of the tree rooted at root has been
//       freed up (returned back to heap/freestore) and the tree is now empty
//       (root pointer contains the null address)
void tree_clear(btNode*& root);

// pre:  (none)
// post: # of nodes contained in tree rooted at root is returned
int bst_size(btNode* bst_root);

// pre:  bst_root is root pointer of a binary search tree (may be 0 for
//       empty tree)
// post: If no node in the binary search tree has data equals insInt, a
//       node with data insInt has been created and inserted at the proper
//       location in the tree to maintain binary search tree property.
//       If a node with data equals insInt is found, the node's data field
//       has been overwritten with insInt; no new node has been created.
//       (Latter case seems odd but it's to mimick update of key-associated
//       data that exists in more general/real-world situations.)

// write prototype for bst_insert here
// pre:  bst_root is root pointer of a binary search tree (may be 0 for
//       empty tree)
// post: If remInt was in the tree, then remInt has been removed, bst_root
//       now points to the root of the new (smaller) binary search tree,
//       and the function returns true. Otherwise, if remInt was not in the
//       tree, then the tree is unchanged, and the function returns false.

// write prototype for bst_remove here
// pre:  bst_root is root pointer of a non-empty binary search tree
// post: The largest item in the binary search tree has been removed, and
//       bst_root now points to the root of the new (smaller) binary search
//       tree. The reference parameter, removed, has been set to a copy of
//       the removed item.

// write prototype for bst_remove_max here

#endif

==============================
test case 1 of 990000
attempt to remove 5 values below:
(sequential order) -2 8 -4 0 1
(value-sort order) -4 -2 0 1 8
from 8 values below:
-8 -7 -6 -2 -1 0 1 2
gives (with 3 values successfully removed)
-8 -7 -6 -1 2
==============================
test case 2 of 990000
attempt to remove 7 values below:
(sequential order) 8 -3 -5 -4 5 6 4
(value-sort order) -5 -4 -3 4 5 6 8
from 6 values below:
-8 -5 -4 -3 -2 3
gives (with 3 values successfully removed)
-8 -2 3
==============================
test case 3 of 990000
attempt to remove 5 values below:
(sequential order) 4 -6 -4 -1 6
(value-sort order) -6 -4 -1 4 6
from 11 values below:
-8 -7 -6 -5 -4 -2 -1 0 5 6 7
gives (with 4 values successfully removed)
-8 -7 -5 -2 0 5 7
==============================
test case 4 of 990000
attempt to remove 1 values below:
(sequential order) 8
(value-sort order) 8
from 12 values below:
-9 -8 -7 -6 -4 -3 -1 1 3 4 5 9
gives (with 0 values successfully removed)
-9 -8 -7 -6 -4 -3 -1 1 3 4 5 9
==============================

int bst_size(btNode* bst_root)
{
}
if (bst_root == 0) return 0;
return 1 + bst_size(bst_root->left) + bst_size(bst_root->right);
Transcribed Image Text:int bst_size(btNode* bst_root) { } if (bst_root == 0) return 0; return 1 + bst_size(bst_root->left) + bst_size(bst_root->right);
1 #include "btNode.h"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// write definition for bst_insert here
// write definition for bst_remove here
// write definition for bst_remove_max here
void portToArrayInOrder (btNode* bst_root, int* portArray)
{
if (bst_root == 0) return;
int portIndex = 0;
portToArrayInOrder Aux (bst_root, portArray, portIndex);
}
void portToArrayInOrder Aux (btNode* bst_root, int* portArray, int& portIndex)
{
}
if (bst_root
0) return;
portToArrayInOrder Aux (bst_root->left, portArray, portIndex);
portArray[portIndex++] = bst_root->data;
portToArrayInOrderAux (bst_root->right, portArray, portIndex);
==
}
void tree_clear (btNode*& root)
{
if (root == 0) return;
tree_clear (root->left);
tree_clear (root->right);
delete root;
root = 0;
Transcribed Image Text:1 #include "btNode.h" 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // write definition for bst_insert here // write definition for bst_remove here // write definition for bst_remove_max here void portToArrayInOrder (btNode* bst_root, int* portArray) { if (bst_root == 0) return; int portIndex = 0; portToArrayInOrder Aux (bst_root, portArray, portIndex); } void portToArrayInOrder Aux (btNode* bst_root, int* portArray, int& portIndex) { } if (bst_root 0) return; portToArrayInOrder Aux (bst_root->left, portArray, portIndex); portArray[portIndex++] = bst_root->data; portToArrayInOrderAux (bst_root->right, portArray, portIndex); == } void tree_clear (btNode*& root) { if (root == 0) return; tree_clear (root->left); tree_clear (root->right); delete root; root = 0;
Expert Solution
steps

Step by step

Solved in 5 steps with 2 images

Blurred answer
Knowledge Booster
Time complexity
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
  • SEE MORE 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