Question: Using C++, add comments to explain the following code: #include #include #include #include using namespace std; int flag; class Tree { public: Tree() { root

Using C++, add comments to explain the following code:

#include #include #include #include using namespace std;

int flag; class Tree { public: Tree() { root = 0; int j, k; for (j = 0; j < 20; j++) for (k = 0; k < 4; k++) node[j][k] = -1; } int insert(int n) { int f = root, index = 0; while (node[index][0] != -1) index++; if (index >= 20) return -1; if (node[root][0] == -1) { node[root][0] = 1; node[root][1] = n; return 1; } else { node[index][0] = 1; node[index][1] = n; while (1) { if (node[f][1] < n) { if (node[f][3] == -1) { node[f][3] = index; return 1; } else { f = node[f][3]; } } else { if (node[f][2] == -1) { node[f][2] = index; return 1; } else { f = node[f][2]; } } } } } void inorder() { flag = 0; inorder(root); } void inorder(int idx) { if (node[idx][2] != -1) inorder(node[idx][2]); if (flag == 1) cout << ","; cout << node[idx][1]; flag = 1; if (node[idx][3] != -1) inorder(node[idx][3]); } void preorder() { flag = 0; preorder(root); } void preorder(int idx) { if (flag == 1) cout << ","; cout << node[idx][1]; flag = 1; if (node[idx][2] != -1) preorder(node[idx][2]); if (node[idx][3] != -1) preorder(node[idx][3]); } void postorder() { flag = 0; postorder(root); } void postorder(int idx) { if (node[idx][2] != -1) postorder(node[idx][2]); if (node[idx][3] != -1) postorder(node[idx][3]); if (flag == 1) cout << ","; cout << node[idx][1]; flag = 1; } void levelorder() { flag = 0; queue list; int idx = root; list.push(root); while (!list.empty()) { if (flag == 1) cout << ","; flag = 1; idx = list.front(); cout << node[idx][1]; if (node[idx][2] != -1) list.push(node[idx][2]); if (node[idx][3] != -1) list.push(node[idx][3]); list.pop(); } }

private: int node[20][4]; // node[idx][0] : exist, [1] : data, [2] : left node, [3] : node. int root; };

int main() { Tree *tree = new Tree(); int j, node; srand(time(NULL)); for (j = 0; j < 10; j++) { node = rand() % 10; tree->insert(node); } tree->inorder(); printf(" "); tree->preorder(); printf(" "); tree->postorder(); printf(" "); tree->levelorder(); printf(" "); }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!