22F-3722 Lab 09
22F-3722 Lab 09
#include<iostream>
#include<iomanip>
using namespace std;
class Node {
public:
string data;
Node* left;
Node* right;
};
class BinaryTree {
private:
Node* root;
public:
BinaryTree() {
root = NULL;
}
Node* getRoot() {
return root;
}
insertNode(node->left, data);
}
}
void printTree(Node* node, int space = 0, int tcount = 10) {
if (node == NULL) {
return;
}
space += tcount;
printTree(node->right, space);
printTree(node->left, space);
}
};
int main() {
BinaryTree bt;
bt.insert("Depts");
bt.insert("CS");
bt.insert("SE");
bt.insert("AI");
bt.insert("CS");
bt.insert("SE");
bt.insert("BS");
bt.insert("MS");
bt.insert("BS");
bt.insert("MS");
bt.printTree(bt.getRoot());
return 0;
}
TASK 3-A:
#include<iostream>
using namespace std;
class Node
{
public:
int data;
Node* left;
Node* right;
};
class BinaryTree
{
private:
Node* root;
public:
BinaryTree()
{
root = NULL;
}
Node* getRoot() {
return root;
}
int main() {
BinaryTree bt;
bt.in_tree(12);
bt.in_tree(18);
bt.in_tree(8);
bt.in_tree(5);
bt.in_tree(11);
if (bt.isFullBinaryTree(bt.getRoot()))
cout << "The tree is a full binary tree\n";
else
cout << "The tree is not a full binary tree\n";
return 0;
}
TASK 3-B:
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node* left;
Node* right;
};
class BinaryTree {
private:
Node* root;
public:
BinaryTree() {
root = NULL;
}
Node* getRoot() {
return root;
}
return root;
}
int main() {
BinaryTree bt;
bt.setRoot(bt.InsertNode(bt.getRoot(), 3722));
bt.InsertNode(bt.getRoot(), 85);
bt.InsertNode(bt.getRoot()->left, 78);
bt.InsertNode(bt.getRoot()->left, 76);
bt.InsertNode(bt.getRoot(), 0);
bt.InsertNode(bt.getRoot()->right, 0);
bt.InsertNode(bt.getRoot()->right, 0);
cout << "Sum of left nodes: " << sumLeft << endl;
cout << "Sum of right nodes: " << sumRight << endl;
return 0;
}
TASK 4:
#include<iostream>
using namespace std;
struct Node {
int data;
Node* left;
Node* right;
};
class BinaryTree {
private:
Node* root;
public:
BinaryTree() {
root = NULL;
}
Node* getRoot() {
return root;
}
return root;
}
freeTree(node->left);
freeTree(node->right);
delete node;
}
int main() {
BinaryTree bt;
bt.in_tree(85);
bt.in_tree(90);
bt.in_tree(78);
bt.in_tree(92);
bt.in_tree(88);
bt.in_tree(76);
bt.in_tree(95);
bt.in_tree(89);
bt.in_tree(91);
bt.in_tree(87);
cout << "Number of nodes at level 3: " << bt.countNodesGivenLevel(bt.getRoot(), 3) << "\n";
bt.freeTree(bt.getRoot());
return 0;
}
TASK 5:
#include <iostream>
#include <iomanip>
using namespace std;
class Node {
public:
int data;
Node* left;
Node* right;
};
class BinaryTree {
private:
Node* root;
public:
BinaryTree() {
root = NULL;
}
Node* getRoot() {
return root;
}
return root;
}
void printTree(Node* node, int space = 0, int tcount = 10) {
if (node == NULL) {
return;
}
space += tcount;
printTree(node->right, space);
printTree(node->left, space);
}
printInorder(node->left);
cout << node->data << ' ';
printInorder(node->right);
}
printPostorder(node->left);
printPostorder(node->right);
cout << node->data << ' ';
}
int main() {
BinaryTree bt;
bt.in_tree(12);
bt.in_tree(18);
bt.in_tree(8);
bt.in_tree(5);
bt.in_tree(36);
bt.in_tree(25);
bt.in_tree(911);
bt.in_tree(3);
bt.in_tree(9);
bt.in_tree(2);
return 0;
}