【发布时间】:2020-11-15 11:50:49
【问题描述】:
我的任务是在模板上制作 BST(二叉搜索树)。我被困在转换问题上,使用模板:/。我不知道如何克服它。我在没有模板的情况下尝试了这段代码,它可以正常工作。
#include <iostream>
using namespace std;
template <class T> struct drzewo{
private:
int value;
drzewo *l ,*r;
public:
T NewDrzewo(int key){
struct drzewo *temp=(struct drzewo*)malloc(sizeof(struct drzewo));
temp->value=key;
temp->l=temp->r=NULL;
return temp;
}
void inorder(struct drzewo *root) {
if (root != NULL) {
inorder(root->l);
cout << root->value << " -> ";
inorder(root->r);
}
}
T insert(struct drzewo *drzewo, int value) {
if (drzewo == NULL) return NewDrzewo(value);
if (value < drzewo->value){
drzewo->l=insert(drzewo->l, value);
}
else{
drzewo->r=insert(drzewo->r, value);
}
return drzewo;
}
};
int main(int argc, char** argv) {
struct drzewo <int> *root = NULL;
root->insert(root, 8);
return 0;
} ```
【问题讨论】:
-
取消引用
NULL是个坏主意。 -
请逐字发布您收到的编译器消息,并在源代码中注明相关行。
-
我被困在转换问题上,因为使用模板你需要实际解释问题是什么,并显示你得到的编译器错误。
-
使用模板意味着你会玩这些类型。您使用
template<class T>,但仍在处理int value。
标签: c++ type-conversion