/* * tree_examples.cpp * * Created on: 28.11.2013 * Author: trifon */ #include #include "mtree.cpp" using namespace std; template int breadth(MTree const& t) { int b = 0; int max = 0; for(typename MTree::I it = t.iterator(); it; ++it) { int n = breadth(*it); if (n > max) max = n; b++; } // b - брой на поддърветата на t if (b > max) max = b; return max; } void testMTree() { MTree t = 1; MTree t2 = 2; MTree t4 = 4; MTree t6 = 6; t2.addChild(MTree(3)).addChild(MTree(3)).addChild(MTree(3)).addChild(MTree(3)); t4.addChild(MTree(5)); t.addChild(t2); t.addChild(t4); t.addChild(t6); cout << t << endl; typedef MTree IMTree; cout << IMTree(1) .addChild(IMTree(2).addChild(IMTree(3))) .addChild(IMTree(4).addChild(IMTree(5))) .addChild(IMTree(6)) << endl; cout << breadth(t) << endl; } int main() { testMTree(); cout << "Alive\n"; return 0; }