sundeepblue
5/3/2014 - 6:54 PM

[tree] preorder binary tree traversal

[tree] preorder binary tree traversal


struct treenode { 
    int val; 
    treenode *left, *right;
    treenode(int v) : val(v), left(NULL), right(NULL) {}
};

void pre_order(treenode *r) {
    if(!r) return;
    stack<treenode*> stk;
    stk.push(r);
    while(!stk.empty()) {
        treenode *cur = stk.top();
        stk.pop();
        if(cur == NULL) continue;
        cout << cur->val << endl;
        stk.push(cur->right);
        stk.push(cur->left);
    }
}

int main()
{
    treenode *r = new treenode(3);
    r->left = new treenode(2);
    r->right = new treenode(4);
    r->left->left = new treenode(1);
    pre_order(r);
}