美文网首页
二叉树静态遍历

二叉树静态遍历

作者: km15 | 来源:发表于2020-03-07 12:22 被阅读0次

    1、先序遍历
    void preorder(int root) {
    if (root == -1) {
    return;
    }

    printf("%d", Node[root]);
    preorder(Node[root].lchid);
    preorder(Noder[root].rchild);
    

    }

    2、中序遍历
    void inorder(int root) {
    if (root == -1) {
    return;
    }
    inorder(Node[root].lchid);
    printf("%d", Node[root]);
    inorder(Noder[root].rchild);
    }

    3、后序遍历
    void postorder(int root) {
    if (root == -1) {
    return;
    }

    postorder(Node[root].lchid);
    postorder(Noder[root].rchild);
    printf("%d", Node[root]);
    

    }

    4、层次遍历

    void layerorder(int root) {
        queue<int>  q;      //此处队列存放节点下标
        q.push(root);       //将根节点入队
        while (!q.empty()) {
            int now = q.front();    //取出队首元素
            q.pop();
            printf("%d ", Node[now].data);  //访问队首元素
            if (Node[now].lchild != -1) {
                q.push(Node[now].lchild);
            }if (Node[node].rchild != -1) {
                q.push(Node[now].rchild);
            }
    
        }
    }
    

    相关文章

      网友评论

          本文标题:二叉树静态遍历

          本文链接:https://www.haomeiwen.com/subject/embqdhtx.html