洛谷号:shqingzao_o
洛谷发布地址:云剪贴板 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
---------------------------------------------------------------------------------------------------------------------------------
树,stl库没有的一个类型
为了更多可用性和优化率,我没使用shared_ptr
所以,我写了一个模板:
#ifndef TREE_ptr_H
#define TREE_ptr_H
#include<memory>
namespace tree_ptr {
template<typename T>
struct tree{
tree(){};
T data;
tree *left=nullptr,*right=nullptr,*root=nullptr;
};
}
#endif
然后,加入生成左子树和右子树的代码:
*tree make_left(*tree root,T data) {
if(root->left!=nullptr)return nullptr;//防止重复
*tree left=new tree;//创建,填写内容,链接根节点、子节点
root->left=left;
left->root=root;
left->data=data;
return left;
}
*tree make_right(*tree root,T data){
if(root->right!=nullptr)return nullptr;//同11行注释
*tree right=new tree;//同12行注释
root->right=right;
right->root=root;
right->data=data;
return right;
}
但无法编译,改了一下,自己看
文件,提取:btrcvRmkzgft5sQ