SlideShare a Scribd company logo
// Complete the C++ program and implement the routines that
are not implemented #include <iostream> #include
<iomanip> #include <fstream> #include <string> #include
<vector> using namespace std; class TreeStruct; class Tree;
class Stack; class Queue; typedef TreeStruct* TreeStructPtr;
typedef Tree* TreePtr; class Stack { private:
vector<TreeStructPtr> s; public: void push(TreeStructPtr
ptr) {s.insert(s.begin(), ptr);} TreeStructPtr pop(){
TreeStructPtr ptr = s[0]; s.erase(s.begin()); return ptr;}
bool empty(){return (s.size()==0);} }; class Queue { private:
vector<TreeStructPtr> q; public: void push(TreeStructPtr
ptr) {q.push_back(ptr);} TreeStructPtr pop(){
TreeStructPtr ptr = q[0]; q.erase(q.begin()); return ptr;}
bool empty(){return (q.size()==0);} }; class TreeStruct {
public: int Number; TreeStructPtr Left; TreeStructPtr
Right; }; class Tree { public: TreeStructPtr TreeRoot;
Tree(); void InsertIntoTree(TreeStructPtr& Root, int num);
int FindMaxLen(TreeStructPtr Root); int
FindMinLen(TreeStructPtr Root); int
CountNodes(TreeStructPtr Root); void Copy(TreeStructPtr
Root1, TreeStructPtr& Root2); //copies one tree into another
bool Search(TreeStructPtr Root, int n); void
PrintInOrderTree(TreeStructPtr Root); void
PrintPreOrderTree(TreeStructPtr Root); void
PrintPostOrderTree(TreeStructPtr Root); void
PrintPreOrderTreeWithStack(TreeStructPtr Root); void
PrintBreadthFirstWithQueue(TreeStructPtr Root); }; // ----------
------------------------------------------------------ // tree
constructor Tree::Tree() { TreeRoot = NULL; } //----------------
------------------------------------------------ void
Copy(TreeStructPtr Root1, TreeStructPtr& Root2) //copies one
tree into another { } //----------------------------------------------
------------------ // Inserting into the tree using recursion void
Tree::InsertIntoTree(TreeStructPtr& Root, int x) { } //----------
------------------------------------------------------ int
Tree::FindMaxLen(TreeStructPtr Root) { return 0; } // ----
------------------------------------------------------------ int
Tree::FindMinLen(TreeStructPtr Root) { if (Root==NULL)
return(0); else if (Root->Right==NULL)
return(1+FindMinLen(Root->Left)); else if (Root-
>Left==NULL) return(1+FindMinLen(Root->Right)); else {
int CountLeft = 1 + FindMinLen(Root->Left); int
CountRight = 1 + FindMinLen(Root->Right); if
(CountLeft < CountRight) return(CountLeft);
else return(CountRight); } } //-------------------------
--------------------------------------- int
Tree::CountNodes(TreeStructPtr Root) { return 0; } //-----
----------------------------------------------------------- bool
Tree::Search(TreeStructPtr Root, int n) { return " "; } //-
--------------------------------------------------------------- void
Tree::PrintInOrderTree(TreeStructPtr Root) { } //-----------------
----------------------------------------------- void
Tree::PrintPreOrderTree(TreeStructPtr Root) { } // ----------------
------------------------------------------------ void
Tree::PrintPostOrderTree(TreeStructPtr Root) { } //--------------
-------------------------------------------------- void
Tree::PrintPreOrderTreeWithStack(TreeStructPtr Root) {
Stack stk; TreeStructPtr p = Root; if (p != NULL)
{ stk.push(p); while (!stk.empty())
{ p = stk.pop();
cout << p->Number << "-->"; if (p->Right !=
NULL) stk.push(p->Right);
if (p->Left != NULL) stk.push(p->Left);
} } } //------------------------------------------------------------
---- void Tree::PrintBreadthFirstWithQueue(TreeStructPtr Root)
{ } //----------------------------------------------------------------
void main() { Tree t; t.InsertIntoTree(t.TreeRoot, 15);
t.InsertIntoTree(t.TreeRoot, 20); t.InsertIntoTree(t.TreeRoot,
10); t.InsertIntoTree(t.TreeRoot, 8);
t.InsertIntoTree(t.TreeRoot, 9); t.InsertIntoTree(t.TreeRoot,
17); t.InsertIntoTree(t.TreeRoot, 21);
t.InsertIntoTree(t.TreeRoot, 22); t.InsertIntoTree(t.TreeRoot,
23); t.InsertIntoTree(t.TreeRoot, 24);
t.InsertIntoTree(t.TreeRoot, 25); t.InsertIntoTree(t.TreeRoot,
26); t.InsertIntoTree(t.TreeRoot, 11); cout << " Printing Pre
Order " << endl; t.PrintPreOrderTree(t.TreeRoot); cout << "
-----------------------------------------------" << endl; getchar();
cout << "Printing Post Order " << endl;
t.PrintPostOrderTree(t.TreeRoot); cout << " --------------------
---------------------------" << endl; getchar(); cout <<
"Printing In Order " << endl; t.PrintInOrderTree(t.TreeRoot);
cout << " -----------------------------------------------" << endl;
getchar(); cout << boolalpha << endl << endl; cout << "
Searching 30: " << t.Search(t.TreeRoot, 30) << endl; cout <<
" Searching 8: " << t.Search(t.TreeRoot, 8) << endl; cout <<
" Searching 10: " << t.Search(t.TreeRoot, 10) << endl; cout
<< "-------------------------------------------" << endl; getchar();
cout << "Printing Pre Order with Stack " << endl;
t.PrintPreOrderTreeWithStack(t.TreeRoot); cout << " ---------
--------------------------------------" << endl; getchar(); cout <<
"Printing level by level BreathFirst Traversal " << endl;
t.PrintBreadthFirstWithQueue(t.TreeRoot); cout << " ----------
-------------------------------------" << endl; getchar(); cout <<
endl; int MaxLen = t.FindMaxLen(t.TreeRoot); int MinLen =
t.FindMinLen(t.TreeRoot); int TotalNodes =
t.CountNodes(t.TreeRoot); cout << "Max is " << MaxLen <<
endl; cout << "Min is " << MinLen << endl; cout << "Num
of Nodes is " << TotalNodes << endl; cout << "-----------------
------------------------------" << endl; getchar(); Tree t2;
Copy(t.TreeRoot, t2.TreeRoot); cout << "Printing In Order the
copy of the tree" << endl; t2.PrintInOrderTree(t2.TreeRoot);
cout << " -----------------------------------------------" << endl;
} //---------------------------------------------------------------- /*
Your output should look like the foolowing Printing Pre Order
15-->10-->8-->9-->11-->20-->17-->21-->22-->23-->24-->25--
>26--> ----------------------------------------------- Printing Post
Order 9-->8-->11-->10-->17-->26-->25-->24-->23-->22-->21--
>20-->15--> ----------------------------------------------- Printing
In Order 8-->9-->10-->11-->15-->17-->20-->21-->22-->23--
>24-->25-->26--> -----------------------------------------------
Searching 30: false Searching 8: true Searching 10: true -------
------------------------------------ Printing Pre Order with Stack
15-->10-->8-->9-->11-->20-->17-->21-->22-->23-->24-->25--
>26--> ----------------------------------------------- Printing level
by level BreathFirst Traversal 15-->10-->20-->8-->11-->17--
>21-->9-->22-->23-->24-->25-->26--> -----------------------------
------------------ Max is 8 Min is 3 Num of Nodes is 13 ---------
-------------------------------------- Printing In Order the copy of
the tree 8-->9-->10-->11-->15-->17-->20-->21-->22-->23-->24-
->25-->26--> ----------------------------------------------- Press any
key to continue */
Solution
Implemented the following 4 functions
void Tree::InsertIntoTree(TreeStructPtr& Root, int x) {
if (Root == NULL) {
TreeStructPtr node = new TreeStruct();
node->Number = x;
node->Left = NULL;
node->Right = NULL;
Root = node;
} else {
if (x <= Root->Number) {
if (Root->Left != NULL)
InsertIntoTree(Root->Left, x);
else {
TreeStructPtr node = new TreeStruct();
node->Number = x;
node->Left = NULL;
node->Right = NULL;
Root->Left = node;
}
} else {
if (Root->Right != NULL)
InsertIntoTree(Root->Right, x);
else {
TreeStructPtr node = new TreeStruct();
node->Number = x;
node->Left = NULL;
node->Right = NULL;
Root->Right = node;
}
}
}
}
//----------------------------------------------------------------
void Tree::PrintInOrderTree(TreeStructPtr Root) {
if (Root != NULL) {
PrintInOrderTree(Root->Left);
cout << Root->Number << "->";
PrintInOrderTree(Root->Right);
}
}
//----------------------------------------------------------------
void Tree::PrintPreOrderTree(TreeStructPtr Root) {
if (Root != NULL) {
cout << Root->Number << "->";
PrintPreOrderTree(Root->Left);
PrintPreOrderTree(Root->Right);
}
}
//----------------------------------------------------------------
void Tree::PrintPostOrderTree(TreeStructPtr Root) {
if (Root != NULL) {
PrintPostOrderTree(Root->Left);
PrintPostOrderTree(Root->Right);
cout << Root->Number << "->";
}
}
--output with your main code for these 4 methods---------------
Printing Pre Order
15->10->8->9->11->20->17->21->22->23->24->25->26->
Printing Post Order
9->8->11->10->17->26->25->24->23->22->21->20->15->
Printing In Order
8->9->10->11->15->17->20->21->22->23->24->25->26->

More Related Content

DOCX
Complete the C++ program and implement the routines that are not .docx
DOCX
Complete the C++ program and implement the routines that are not .docx
PDF
Data StructuresPlease I need help completing this c++ program..pdf
PDF
DS & Algo 1 - C++ and STL Introduction
DOCX
AvlTree.h#ifndef AVL_TREE_H#define AVL_TREE_H#include d.docx
PPT
Stack, queue and hashing
PDF
C++, Implement the class BinarySearchTree, as given in listing 16-4 .pdf
PDF
g++ -o simpleVector.exe simpleVector.cpp #include stdio.h #i.pdf
Complete the C++ program and implement the routines that are not .docx
Complete the C++ program and implement the routines that are not .docx
Data StructuresPlease I need help completing this c++ program..pdf
DS & Algo 1 - C++ and STL Introduction
AvlTree.h#ifndef AVL_TREE_H#define AVL_TREE_H#include d.docx
Stack, queue and hashing
C++, Implement the class BinarySearchTree, as given in listing 16-4 .pdf
g++ -o simpleVector.exe simpleVector.cpp #include stdio.h #i.pdf

Similar to Complete the C++ program and implement the routines that are n.docx (20)

PPTX
DS group binary tree all information M.pptx
DOCX
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
PDF
I just need code for processQueue function using iterators from the .pdf
PDF
Using C++I keep getting messagehead does not name a type.pdf
PDF
Were writing code for a project that dynamically allocates an arra.pdf
PDF
complete the following functions in c++ singleRotation putNo.pdf
PDF
in this assignment you are asked to write a simple driver program an.pdf
DOCX
-- Task 2- Debugging a program with stacks- queues- and doubly-linked.docx
PDF
Notes for SQLite3 Usage
DOCX
Start with the inclusion of libraries#include iostream .docx
PDF
Memory Manglement in Raku
DOCX
Binary Tree in C++ coding in the data structure
PDF
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
PDF
Can you finish and write the int main for the code according to the in.pdf
PDF
Need help implementing the skeleton code below, I have provided the .pdf
PDF
2 BytesC++ course_2014_c3_ function basics&parameters and overloading
DOCX
Lab08Lab08.cppLab08Lab08.cpp.docx
PDF
Степан Кольцов — Rust — лучше, чем C++
PDF
Need help with the TODO's (DONE IN C++) #pragma once #include -funct.pdf
PDF
Please read the comment ins codeExpressionTree.java-------------.pdf
DS group binary tree all information M.pptx
RightTrianglerightTriangle.cppRightTrianglerightTriangle.cpp.docx
I just need code for processQueue function using iterators from the .pdf
Using C++I keep getting messagehead does not name a type.pdf
Were writing code for a project that dynamically allocates an arra.pdf
complete the following functions in c++ singleRotation putNo.pdf
in this assignment you are asked to write a simple driver program an.pdf
-- Task 2- Debugging a program with stacks- queues- and doubly-linked.docx
Notes for SQLite3 Usage
Start with the inclusion of libraries#include iostream .docx
Memory Manglement in Raku
Binary Tree in C++ coding in the data structure
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
Can you finish and write the int main for the code according to the in.pdf
Need help implementing the skeleton code below, I have provided the .pdf
2 BytesC++ course_2014_c3_ function basics&parameters and overloading
Lab08Lab08.cppLab08Lab08.cpp.docx
Степан Кольцов — Rust — лучше, чем C++
Need help with the TODO's (DONE IN C++) #pragma once #include -funct.pdf
Please read the comment ins codeExpressionTree.java-------------.pdf

More from ShiraPrater50 (20)

DOCX
Read Chapter 3. Answer the following questions1.Wha.docx
DOCX
Read Chapter 15 and answer the following questions 1.  De.docx
DOCX
Read Chapter 2 and answer the following questions1.  List .docx
DOCX
Read chapter 7 and write the book report  The paper should be .docx
DOCX
Read Chapter 7 and answer the following questions1.  What a.docx
DOCX
Read chapter 14, 15 and 18 of the class textbook.Saucier.docx
DOCX
Read Chapter 10 APA FORMAT1. In the last century, what historica.docx
DOCX
Read chapter 7 and write the book report  The paper should b.docx
DOCX
Read Chapter 14 and answer the following questions1.  Explain t.docx
DOCX
Read Chapter 2 first. Then come to this assignment.The first t.docx
DOCX
Journal of Public Affairs Education 515Teaching Grammar a.docx
DOCX
Learner Guide TLIR5014 Manage suppliers TLIR.docx
DOCX
Lab 5 Nessus Vulnerability Scan Report © 2012 by Jone.docx
DOCX
Leveled and Exclusionary Tracking English Learners Acce.docx
DOCX
Lab 5 Nessus Vulnerability Scan Report © 2015 by Jone.docx
DOCX
MBA 6941, Managing Project Teams 1 Course Learning Ou.docx
DOCX
Inventory Decisions in Dells Supply ChainAuthor(s) Ro.docx
DOCX
It’s Your Choice 10 – Clear Values 2nd Chain Link- Trade-offs .docx
DOCX
MBA 5101, Strategic Management and Business Policy 1 .docx
DOCX
MAJOR WORLD RELIGIONSJudaismJudaism (began .docx
Read Chapter 3. Answer the following questions1.Wha.docx
Read Chapter 15 and answer the following questions 1.  De.docx
Read Chapter 2 and answer the following questions1.  List .docx
Read chapter 7 and write the book report  The paper should be .docx
Read Chapter 7 and answer the following questions1.  What a.docx
Read chapter 14, 15 and 18 of the class textbook.Saucier.docx
Read Chapter 10 APA FORMAT1. In the last century, what historica.docx
Read chapter 7 and write the book report  The paper should b.docx
Read Chapter 14 and answer the following questions1.  Explain t.docx
Read Chapter 2 first. Then come to this assignment.The first t.docx
Journal of Public Affairs Education 515Teaching Grammar a.docx
Learner Guide TLIR5014 Manage suppliers TLIR.docx
Lab 5 Nessus Vulnerability Scan Report © 2012 by Jone.docx
Leveled and Exclusionary Tracking English Learners Acce.docx
Lab 5 Nessus Vulnerability Scan Report © 2015 by Jone.docx
MBA 6941, Managing Project Teams 1 Course Learning Ou.docx
Inventory Decisions in Dells Supply ChainAuthor(s) Ro.docx
It’s Your Choice 10 – Clear Values 2nd Chain Link- Trade-offs .docx
MBA 5101, Strategic Management and Business Policy 1 .docx
MAJOR WORLD RELIGIONSJudaismJudaism (began .docx

Recently uploaded (20)

PPTX
Pharma ospi slides which help in ospi learning
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Complications of Minimal Access Surgery at WLH
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Cell Types and Its function , kingdom of life
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Basic Mud Logging Guide for educational purpose
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Classroom Observation Tools for Teachers
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Pharma ospi slides which help in ospi learning
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPH.pptx obstetrics and gynecology in nursing
FourierSeries-QuestionsWithAnswers(Part-A).pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
Complications of Minimal Access Surgery at WLH
VCE English Exam - Section C Student Revision Booklet
Cell Types and Its function , kingdom of life
Final Presentation General Medicine 03-08-2024.pptx
Basic Mud Logging Guide for educational purpose
Renaissance Architecture: A Journey from Faith to Humanism
Classroom Observation Tools for Teachers
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
O5-L3 Freight Transport Ops (International) V1.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx

Complete the C++ program and implement the routines that are n.docx

  • 1. // Complete the C++ program and implement the routines that are not implemented #include <iostream> #include <iomanip> #include <fstream> #include <string> #include <vector> using namespace std; class TreeStruct; class Tree; class Stack; class Queue; typedef TreeStruct* TreeStructPtr; typedef Tree* TreePtr; class Stack { private: vector<TreeStructPtr> s; public: void push(TreeStructPtr ptr) {s.insert(s.begin(), ptr);} TreeStructPtr pop(){ TreeStructPtr ptr = s[0]; s.erase(s.begin()); return ptr;} bool empty(){return (s.size()==0);} }; class Queue { private: vector<TreeStructPtr> q; public: void push(TreeStructPtr ptr) {q.push_back(ptr);} TreeStructPtr pop(){ TreeStructPtr ptr = q[0]; q.erase(q.begin()); return ptr;} bool empty(){return (q.size()==0);} }; class TreeStruct { public: int Number; TreeStructPtr Left; TreeStructPtr Right; }; class Tree { public: TreeStructPtr TreeRoot; Tree(); void InsertIntoTree(TreeStructPtr& Root, int num); int FindMaxLen(TreeStructPtr Root); int FindMinLen(TreeStructPtr Root); int CountNodes(TreeStructPtr Root); void Copy(TreeStructPtr Root1, TreeStructPtr& Root2); //copies one tree into another bool Search(TreeStructPtr Root, int n); void PrintInOrderTree(TreeStructPtr Root); void PrintPreOrderTree(TreeStructPtr Root); void PrintPostOrderTree(TreeStructPtr Root); void PrintPreOrderTreeWithStack(TreeStructPtr Root); void PrintBreadthFirstWithQueue(TreeStructPtr Root); }; // ---------- ------------------------------------------------------ // tree constructor Tree::Tree() { TreeRoot = NULL; } //---------------- ------------------------------------------------ void Copy(TreeStructPtr Root1, TreeStructPtr& Root2) //copies one tree into another { } //---------------------------------------------- ------------------ // Inserting into the tree using recursion void Tree::InsertIntoTree(TreeStructPtr& Root, int x) { } //---------- ------------------------------------------------------ int
  • 2. Tree::FindMaxLen(TreeStructPtr Root) { return 0; } // ---- ------------------------------------------------------------ int Tree::FindMinLen(TreeStructPtr Root) { if (Root==NULL) return(0); else if (Root->Right==NULL) return(1+FindMinLen(Root->Left)); else if (Root- >Left==NULL) return(1+FindMinLen(Root->Right)); else { int CountLeft = 1 + FindMinLen(Root->Left); int CountRight = 1 + FindMinLen(Root->Right); if (CountLeft < CountRight) return(CountLeft); else return(CountRight); } } //------------------------- --------------------------------------- int Tree::CountNodes(TreeStructPtr Root) { return 0; } //----- ----------------------------------------------------------- bool Tree::Search(TreeStructPtr Root, int n) { return " "; } //- --------------------------------------------------------------- void Tree::PrintInOrderTree(TreeStructPtr Root) { } //----------------- ----------------------------------------------- void Tree::PrintPreOrderTree(TreeStructPtr Root) { } // ---------------- ------------------------------------------------ void Tree::PrintPostOrderTree(TreeStructPtr Root) { } //-------------- -------------------------------------------------- void Tree::PrintPreOrderTreeWithStack(TreeStructPtr Root) { Stack stk; TreeStructPtr p = Root; if (p != NULL) { stk.push(p); while (!stk.empty()) { p = stk.pop(); cout << p->Number << "-->"; if (p->Right != NULL) stk.push(p->Right); if (p->Left != NULL) stk.push(p->Left); } } } //------------------------------------------------------------ ---- void Tree::PrintBreadthFirstWithQueue(TreeStructPtr Root) { } //---------------------------------------------------------------- void main() { Tree t; t.InsertIntoTree(t.TreeRoot, 15); t.InsertIntoTree(t.TreeRoot, 20); t.InsertIntoTree(t.TreeRoot, 10); t.InsertIntoTree(t.TreeRoot, 8); t.InsertIntoTree(t.TreeRoot, 9); t.InsertIntoTree(t.TreeRoot, 17); t.InsertIntoTree(t.TreeRoot, 21);
  • 3. t.InsertIntoTree(t.TreeRoot, 22); t.InsertIntoTree(t.TreeRoot, 23); t.InsertIntoTree(t.TreeRoot, 24); t.InsertIntoTree(t.TreeRoot, 25); t.InsertIntoTree(t.TreeRoot, 26); t.InsertIntoTree(t.TreeRoot, 11); cout << " Printing Pre Order " << endl; t.PrintPreOrderTree(t.TreeRoot); cout << " -----------------------------------------------" << endl; getchar(); cout << "Printing Post Order " << endl; t.PrintPostOrderTree(t.TreeRoot); cout << " -------------------- ---------------------------" << endl; getchar(); cout << "Printing In Order " << endl; t.PrintInOrderTree(t.TreeRoot); cout << " -----------------------------------------------" << endl; getchar(); cout << boolalpha << endl << endl; cout << " Searching 30: " << t.Search(t.TreeRoot, 30) << endl; cout << " Searching 8: " << t.Search(t.TreeRoot, 8) << endl; cout << " Searching 10: " << t.Search(t.TreeRoot, 10) << endl; cout << "-------------------------------------------" << endl; getchar(); cout << "Printing Pre Order with Stack " << endl; t.PrintPreOrderTreeWithStack(t.TreeRoot); cout << " --------- --------------------------------------" << endl; getchar(); cout << "Printing level by level BreathFirst Traversal " << endl; t.PrintBreadthFirstWithQueue(t.TreeRoot); cout << " ---------- -------------------------------------" << endl; getchar(); cout << endl; int MaxLen = t.FindMaxLen(t.TreeRoot); int MinLen = t.FindMinLen(t.TreeRoot); int TotalNodes = t.CountNodes(t.TreeRoot); cout << "Max is " << MaxLen << endl; cout << "Min is " << MinLen << endl; cout << "Num of Nodes is " << TotalNodes << endl; cout << "----------------- ------------------------------" << endl; getchar(); Tree t2; Copy(t.TreeRoot, t2.TreeRoot); cout << "Printing In Order the copy of the tree" << endl; t2.PrintInOrderTree(t2.TreeRoot); cout << " -----------------------------------------------" << endl; } //---------------------------------------------------------------- /* Your output should look like the foolowing Printing Pre Order 15-->10-->8-->9-->11-->20-->17-->21-->22-->23-->24-->25-- >26--> ----------------------------------------------- Printing Post Order 9-->8-->11-->10-->17-->26-->25-->24-->23-->22-->21--
  • 4. >20-->15--> ----------------------------------------------- Printing In Order 8-->9-->10-->11-->15-->17-->20-->21-->22-->23-- >24-->25-->26--> ----------------------------------------------- Searching 30: false Searching 8: true Searching 10: true ------- ------------------------------------ Printing Pre Order with Stack 15-->10-->8-->9-->11-->20-->17-->21-->22-->23-->24-->25-- >26--> ----------------------------------------------- Printing level by level BreathFirst Traversal 15-->10-->20-->8-->11-->17-- >21-->9-->22-->23-->24-->25-->26--> ----------------------------- ------------------ Max is 8 Min is 3 Num of Nodes is 13 --------- -------------------------------------- Printing In Order the copy of the tree 8-->9-->10-->11-->15-->17-->20-->21-->22-->23-->24- ->25-->26--> ----------------------------------------------- Press any key to continue */ Solution Implemented the following 4 functions void Tree::InsertIntoTree(TreeStructPtr& Root, int x) { if (Root == NULL) { TreeStructPtr node = new TreeStruct(); node->Number = x; node->Left = NULL; node->Right = NULL; Root = node; } else {
  • 5. if (x <= Root->Number) { if (Root->Left != NULL) InsertIntoTree(Root->Left, x); else { TreeStructPtr node = new TreeStruct(); node->Number = x; node->Left = NULL; node->Right = NULL; Root->Left = node; } } else { if (Root->Right != NULL) InsertIntoTree(Root->Right, x); else { TreeStructPtr node = new TreeStruct(); node->Number = x; node->Left = NULL; node->Right = NULL; Root->Right = node; } } } } //---------------------------------------------------------------- void Tree::PrintInOrderTree(TreeStructPtr Root) {
  • 6. if (Root != NULL) { PrintInOrderTree(Root->Left); cout << Root->Number << "->"; PrintInOrderTree(Root->Right); } } //---------------------------------------------------------------- void Tree::PrintPreOrderTree(TreeStructPtr Root) { if (Root != NULL) { cout << Root->Number << "->"; PrintPreOrderTree(Root->Left); PrintPreOrderTree(Root->Right); } } //---------------------------------------------------------------- void Tree::PrintPostOrderTree(TreeStructPtr Root) { if (Root != NULL) { PrintPostOrderTree(Root->Left); PrintPostOrderTree(Root->Right); cout << Root->Number << "->"; } } --output with your main code for these 4 methods---------------
  • 7. Printing Pre Order 15->10->8->9->11->20->17->21->22->23->24->25->26-> Printing Post Order 9->8->11->10->17->26->25->24->23->22->21->20->15-> Printing In Order 8->9->10->11->15->17->20->21->22->23->24->25->26->