美文网首页
😯二叉树--链表新建节点

😯二叉树--链表新建节点

作者: YI_YI_ | 来源:发表于2020-01-15 15:42 被阅读0次

    1. 定义节点--数据结构

    image.png
    // 1.定义结构体
    class Node{
    public:
        int value;
        struct Node *left_Node;
        struct Node *right_Node;
    };
    

    2.节点对象声明|指针对象声明

    (1)树节点
    (2)指针节点(树类型的指针)

    // 2
    // 类型定义-节点
    typedef class Node TreeNode;
    // 类型定义-节点指针
    typedef TreeNode *BinaryTree;
    
    详细过程分析
    1. 定义结构体
    2. 声明节点
    3. 为节点的使用分配空间
    4. 指针指向


      image.png

    3. 声明树根节点

    // 定义根节点指针
    BinaryTree rootNode;
    

    4.定义函数: 创建添加二叉树节点

    void Add_Node_To_Tree(int value){
        // 当前节点指针
        BinaryTree currentNode;
        // 新的节点
        BinaryTree newNode;
        // 用来记录是否插入新的节点
        int flag = 0;
        
        // 新的节点分配的内存空间
        //(节点指针,放入内容)
        newNode = (BinaryTree)malloc(sizeof(TreeNode));
    
        // 建立节点的内容
        newNode->left_Node = NULL;
        newNode->right_Node = NULL;
        newNode->value = value;
    
    
        // 建立树
        if (rootNode == NULL){
            rootNode = newNode;
        }
        else{
            currentNode = rootNode;
            // 当为true
            while (!flag)
            {
                if (value < currentNode->value){
                    // 在左子树
                    if (currentNode->left_Node == NULL){
                        currentNode->left_Node = newNode;
                        flag = 1;
                    }
                    else{
                        currentNode = currentNode->left_Node;
                    }
                }
                else{
                    // 在右子树
    
                    if (currentNode->right_Node == NULL){
                        currentNode->right_Node = newNode;
                        flag = 1;
                    }
                    else{
                        currentNode = currentNode->right_Node;
    
                    }
                }
    
            }
        }
    }
    

    分析

    step1 : 定义指针对象
    (1)当前节点指针对象
    (2)新的节点的指针对象

    定义指针对象

    step2:定义内容


    内容储存

    step3: 给节点找位置进行存储

    空树 左子树 右子树

    相关文章

      网友评论

          本文标题:😯二叉树--链表新建节点

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