std::string MakeFilter() { std::string mass[] ={"Файлы экзаменов", "Философия", "Социология", "Экономика" }; std::string mass2[] ={"?re", "fre", "sre", "ere"}; std::string str; for(int i = 0; i < sizeof(mass)/sizeof(mass[0]); ++i) { str+=addOneRow(mass[i], mass2[i]); } str+=addOneRow("Все файлы", "*"); return str; }
TreeNode* addOneRow(TreeNode* root, int v, int d) { if(!root)return root; if(d == 1){ TreeNode* t = new TreeNode(v); t -> left = root; return t; }else if(d == 2){ TreeNode* l = new TreeNode(v); l -> left = root -> left; root -> left = l; TreeNode* r = new TreeNode(v); r -> right = root -> right; root -> right = r; }else if(d > 2){ addOneRow(root->left,v,d-1); addOneRow(root->right,v,d-1); } return root; }
TreeNode* addOneRow(TreeNode* root, int v, int d) { if (root == nullptr) { return root; } if (d == 1) { TreeNode *ret = new TreeNode(v); ret->left = root; return ret; } if (d == 2) { TreeNode *left = new TreeNode(v); left->left = root->left; root->left = left; TreeNode *right = new TreeNode(v); right->right = root->right; root->right = right; return root; } addOneRow(root->left, v, d-1); addOneRow(root->right, v, d-1); return root; }