Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CNode
- {
- public:
- CNode(int iVal) { piVal = new int(iVal); }
- void v_add(CNode *pcKid) { vKids.push_back(pcKid); }
- void v_set_val(int iVal) { *piVal = iVal; }
- void v_print()
- {
- if (!vKids.empty())
- for (int i = 0; i < vKids.size(); i++)
- vKids[i]->v_print();
- cout << *piVal << " ";
- }
- void v_delete_node()
- {
- if (!vKids.empty())
- for (int i = 0; i < vKids.size(); i++)
- vKids[i]->v_delete_node();
- delete piVal;
- }
- private:
- int *piVal;
- vector<CNode*> vKids;
- };
- class CTree
- {
- public:
- CTree() { pcRoot = new CNode(0); }
- ~CTree() { v_delete_tree(); }
- void v_delete_tree() { pcRoot->v_delete_node(); }
- CNode *pc_root() { return pcRoot; }
- void vPrint() { pcRoot->v_print(); }
- private:
- CNode *pcRoot;
- };
- void v_test()
- {
- CTree cT0;
- cT0.pc_root()->v_set_val(5);
- cT0.pc_root()->v_add(new CNode(1));
- CNode *pcN0;
- pcN0 = new CNode(3);
- pcN0->v_add(new CNode(4));
- cT0.pc_root()->v_add(pcN0);
- CTree *pc_copy = new CTree(cT0);
- cT0.vPrint();
- pc_copy->vPrint();
- //delete pc_copy;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement