Access Millions of academic & study documents

Content type
User Generated
Showing Page:
1/6
//****************************************************************
************************** /* 1) Tree::Tree( ); 2) int
Tree::FindMinLen(TreeStructPtr Root); 3) void
Tree::PrintPreOrderTreeWithStack(TreeStructPtr Root); 4)
You are required to implement the rest. */
//****************************************************************
************************** #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); }; //-----

Sign up to view the full document!

lock_open Sign Up
Showing Page:
2/6
----------------------------------------------------------- // 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-

Sign up to view the full document!

lock_open Sign Up
Showing Page:
3/6

Sign up to view the full document!

lock_open Sign Up
End of Preview - Want to read all 6 pages?
Access Now
Unformatted Attachment Preview
//**************************************************************** ************************** /* 1) Tree::Tree( ); 2) int Tree::FindMinLen(TreeStructPtr Root); 3) void Tree::PrintPreOrderTreeWithStack(TreeStructPtr Root); 4) You are required to implement the rest. */ //**************************************************************** ************************** #include #include #include #include #include using namespace std; class Tree Struct; class Tree; class Stack; class Queue; typedef TreeStruct* TreeStructPtr; typedef Tree* TreePtr; class Stack { private: vector 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 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 T reeRoot; 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); //copie s one tree into another bool Search(TreeStructPtr Root, int n); void PrintInOrderTree(TreeStru ...
Purchase document to see full attachment
User generated content is uploaded by users for the purposes of learning and should be used following Studypool's honor code & terms of service.
Studypool
4.7
Indeed
4.5
Sitejabber
4.4