无序二叉树实现

问题描述 投票:0回答:1

我正在尝试创建无序二叉树。我们如何在无序的二叉树中插入一个Treenode?逻辑应该是什么?

通过在此处插入,我的意思是将节点插入为叶子。就像我从根节点开始然后遍历到正确的节点一样,现在在哪里插入该节点。

如果有人引用UNORDERED二进制树[Not BST]实现,请提供。

c++ data-structures tree binary-tree unordered
1个回答
0
投票
void addnode(T data){
    Node<T>* new_node=new Node<T>(data);
    if(this->root==nullptr){
        this->root= new_node;
        return ;
    }else{
        std::queue<Node<T>* > Q;
        Q.push(this->root);
        while(!Q.empty()){
            Node<T>* popping_element= Q.front();
            Q.pop();

            if(!popping_element->left){
                popping_element->left=new_node;
                return;
            }else if(!popping_element->right){
                      popping_element->right=new_node;
                      return;
            }else{
                Q.push(popping_element->left);
                Q.push(popping_element->right);
            }
        }
    }

}

我正在尝试做的Tree Structure添加一个节点作为左子节点30。这称为在二进制树中的级别顺序插入。它没有顺序,或者没有排序,都意味着相同的含义。

© www.soinside.com 2019 - 2024. All rights reserved.