online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include <vector> #include <stack> using namespace std; class node{ public: int data; vector<node*> children; node(int val){ data = val; // this->data = data } ~node(){ for(int i = 0 ;i<children.size();i++){ if(!children[i]) delete children[i]; } } }; class GenericTree{ public: node* root; // line 3 int size; GenericTree(vector<int> nums){ stack<node*> st; size = 0; for(int i = 0;i<nums.size();i++){ node *n = new node(nums[i]); if(i == 0){ root = n; st.push(n); ++size; }else{ if(n->data == -1){ st.pop(); }else{ // cout << "In me" << endl; st.top()->children.push_back(n); st.push(n); ++size; } } } } // tells us the number of nodes int getSize(){ return size; } }; //------------------------vvvvv--------->const added here int getSizeRecursive(node*const &root){ // line 1 if(root->children.size()==0) return 1; int size = 0; //-----------vvvvv-------------------------->const added here for(node*const &child : root->children) // line 2 size += getSizeRecursive(child); return size+1; } int main(){ #ifndef ONLINE_JUDGE freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); freopen("error.txt","w",stderr); #endif vector<int> v{10,20,-1,30,50,-1,60,-1,-1,40,-1,-1}; GenericTree t(v); // node that tree has been created cout << t.size << endl; cout << getSizeRecursive(t.root) << endl; return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue