美文网首页
树与二叉树

树与二叉树

作者: 1nvad3r | 来源:发表于2020-08-13 10:53 被阅读0次
    #include <cstdio>
    
    //二叉树存储结构
    struct Node {
        int data;
        Node *lchild;
        Node *rchild;
    };
    
    //新建结点
    Node *newNode(int v) {
        Node *node = new Node;
        node->data = v;
        node->lchild = node->rchild = NULL;
        return node;
    }
    
    //查找所有值为x的结点,把值修改为newdata
    void search(Node *root, int x, int newdata) {
        if (root == NULL) {
            return;
        }
        if (root->data == x) {
            root->data = newdata;
        }
        search(root->lchild, x, newdata);
        search(root->rchild, x, newdata);
    }
    
    //插入一个新结点,往左子树插
    //注意root要使用引用,否则插入不成功
    void insert(Node *&root, int x) {
        if (root == NULL) {
            root = newNode(x);
            return;
        }
        insert(root->lchild, x);
    }
    
    //二叉树的创建
    Node *create(int data[], int n) {
        Node *root = NULL;
        for (int i = 0; i < n; i++) {
            insert(root, data[i]);
        }
        return root;
    }
    
    一般来说,如果函数中需要新建结点,即对二叉树的结构做出修改,就需要加引用;如果只是修改当前已有结点的内容,或仅仅是遍历树,就不用加引用。

    相关文章

      网友评论

          本文标题:树与二叉树

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