zoukankan      html  css  js  c++  java
  • C++遍历树递归

    /*
    *   description:树的遍历示例,递归
    *               访问顺序:
    *               前序: 当前节点 - 左子树   - 右子树
    *               中序: 左子树   - 当前节点 - 右子树
    *               后序: 左子树   - 右子树   - 当前节点
    *
    *   writeby:    nick
    *   date:       2012-10-22 23:56
    */
    #include <iostream>
    
    using namespace std;
    
    struct node 
    {
        int item;
        node *l, *r;
        node(int n)
        {item=n; l=0; r=0;}
    };
    typedef node *link;
    
    //前序遍历
    void pretraverse(link h, void visit(link))
    {
        if(h==0) return;
        visit(h);
        pretraverse(h->l, visit);
        pretraverse(h->r, visit);
    }
    
    //中序遍历
    void midtraverse(link h, void visit(link))
    {
        if(h==0) return;
        midtraverse(h->l, visit);
        visit(h);
        midtraverse(h->r, visit);
    }
    
    //后序遍历
    void posttraverse(link h, void visit(link))
    {
        if(h==0) return;
        posttraverse(h->l, visit);
        posttraverse(h->r, visit);
        visit(h);
    }
    
    void visit(link p)
    {
        cout << p->item << " ";
    }
    
    int main()
    {
        link root = new node(4);
        root->l = new node(5);
        root->r = new node(6);
        cout << "先序遍历:";
        pretraverse(root, visit);
    
        cout << endl << "中序遍历:";
        midtraverse(root, visit);
    
        cout << endl << "后序遍历:";
        posttraverse(root, visit);
        
        return 0;
    }
  • 相关阅读:
    动态生成表格 (ng-zorro)
    单例服务
    模板变量 #
    HTML 5 系列
    关于tcp nagle算法
    netty 解包头包体的一点认知
    vargent Authentication failure.记录
    关于YII2.0配置的一点问题
    关于mysql b-tree索引的一点认知
    记vagrant nginx sendfile问题
  • 原文地址:https://www.cnblogs.com/wouldguan/p/2735119.html
Copyright © 2011-2022 走看看