c++ - 无序二叉树实现
问题描述
我正在尝试创建一个无序二叉树。我们如何在无序二叉树中插入 Treenode?应该是什么逻辑?
在这里插入是指将节点作为叶子插入。就像我从根节点开始然后遍历到正确的节点一样,现在我在哪里插入节点。
如果有人对 UNORDERED 二叉树[非 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);
}
}
}
}
推荐阅读
- javascript - 如何使用 javascript 创建数字猜谜游戏并做出反应?
- redux - 存储逆关系时如何在redux中合并规范化状态?
- asp.net-core - 如何从密钥库中获取证书?
- java - 如何将消息直接发送到 azure 服务总线(java)中的死信队列?
- python - 如何使用单个 POST 请求从两个不同的模型创建两个对象实例?
- python - 在数据框与列表上使用 numpy.median 时结果不一致
- android - 无法将 Context 导入我的 android 库
- sql - 使用 BigQuery sql 转置行中的列
- swiftui - SwiftUI 导航前触发函数
- javascript - 点击时反应 axios 编辑文本