我正在尝试创建无序二叉树。我们如何在无序的二叉树中插入一个Treenode?逻辑应该是什么?
通过在此处插入,我的意思是将节点插入为叶子。就像我从根节点开始然后遍历到正确的节点一样,现在在哪里插入该节点。
如果有人引用UNORDERED二进制树[Not BST]实现,请提供。
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);
}
}
}
}
我正在尝试做的添加一个节点作为左子节点30。这称为在二进制树中的级别顺序插入。它没有顺序,或者没有排序,都意味着相同的含义。