Question
*There are 2 other posts with the same question, answered, but they only print out Location already full and contain try, catch, throw, and private
*There are 2 other posts with the same question, answered, but they only print out "Location already full" and contain try, catch, throw, and private class which should not be in this program.*
You are given a class TNode that contains one integer value, and three pointers one to the parent, one to the left child, and one to the right child. You need to complete the class BTree and two other functions specified in the cpp file.
Task 1:
Write a function isValidBT that given inputs as a binary tree in the array form, and outputs whether the array forms a correct binary tree. The inputs contain a pointer p to an array, and an integer n denoting the number of slots used in the array representation. Here the array has size n , and we use p [0] to store the empty symbol for the binary tree as discussed in the class. For this representation, the tree has size n ?1.
Task 2:
Implement the constructors (default and copy) of BTree, and the destructor. You need to make sure that the copy constructor makes a separate copy of the list. In addition to the normal copy constructor, here we ask you to implement a special copy constructor that takes input a binary tree of the array form. The inputs have the same format as Task 1, and you need to copy the binary tree, and convert the array form/to the pointer-based construction.
Task 3:
Implement the function convertpos that takes input an integer position, and returns the TNode pointer that points to the position-th node in the tree. We discussed about how to do this in the class.
Task 4:
Implement the add2left, add2right functions. The functionalities are just as the names. Here you need to consider how to handle different input of positions, i.e. places that you want to
add the node/tree to. You need to consider whether the position is available to add a new node.
Task 5:
Write the removeleaf function. You need to first check whether the input is a leaf or not. If that is a leaf, then remove it. Otherwise do nothing.
Task 6:
Write a function Toarray that converts the BTree into the array form. You can start by determining the size to the reference n, and new an array of size n. Then you need to produce the correct array according to your BTree.
Task 7:
Write swapnodes and the three tree traversal algorithms. For the traversal algorithm, you can just print the notes according to the order. Here you just need to swap the values for the
swapnodes. This task should be very simple.
Task 8:
Write a function isValidBST that checks whether the binary tree is a valid binary search tree.
Task 9:
Test the above tasks.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started