C++ C++;如何用二叉搜索树制作词典
我想做一本字典,但我不能在我的代码中输出2棵树 我不知道下一步该怎么办:C++ C++;如何用二叉搜索树制作词典,c++,C++,我想做一本字典,但我不能在我的代码中输出2棵树 我不知道下一步该怎么办: WORD *t1 = NULL; WORD *t2 = NULL; WORD *t = NULL; void InsertWordEN(WORD *t1, TD x) { if(t1 == NULL) { WORD *temp; temp = new WORD; strcpy(temp->data.EN, x.EN); temp->
WORD *t1 = NULL;
WORD *t2 = NULL;
WORD *t = NULL;
void InsertWordEN(WORD *t1, TD x)
{
if(t1 == NULL)
{
WORD *temp;
temp = new WORD;
strcpy(temp->data.EN, x.EN);
temp->left = NULL;
temp->right = NULL;
t1 = temp;
}
else
{
if (strcmp(t1->data.EN, x.EN) == 1)
{
InsertWordEN(t1->left,x);
}
else if(strcmp(t1->data.EN, x.EN) == 0)
{
InsertWordEN(t1->right,x);
}
}
}
void InsertWordVN(WORD *t2, TD x)
{
if(t2 == NULL)
{
WORD *temp;
temp = new WORD;
strcpy(temp->data.VN, x.VN);
temp->left = NULL;
temp->right = NULL;
t2 = temp;
}
else
{
if (strcmp(t2->data.VN, x.VN) == 1)
{
InsertWordVN(t2->left,x);
}
else if(strcmp(t2->data.VN, x.VN) == 0)
{
InsertWordVN(t2->right,x);
}
}
}
void InsertWord(TD &x)
{
cout<<"\EN: "; cin>>x.EN;
InsertWordEN(t1,x);
cout<<"\nVN: "; cin>>x.VN;
InsertWordEN(t2,x);
}
void OutputWord_NLR(WORD *t)
{
if(t1 != NULL)
{
cout<<t1->data.EN<<" ";
OutputWord_NLR(t1->left);
OutputWord_NLR(t1->right);
}
else if(t2 != NULL)
{
cout<<t2->data.VN<<" ";
OutputWord_NLR(t2->left);
OutputWord_NLR(t2->right);
}
}
int main()
{
int select; TD x;
InsertWord(x);
cout<<"\nOutput Tree EN and VN";
OutputWord_NLR(t);
getch();
return 0;
}
WORD*t1=NULL;
WORD*t2=NULL;
单词*t=NULL;
void InsertWordEN(单词*t1,TD x)
{
如果(t1==NULL)
{
WORD*temp;
temp=新单词;
strcpy(temp->data.EN,x.EN);
temp->left=NULL;
temp->right=NULL;
t1=温度;
}
其他的
{
如果(strcmp(t1->data.EN,x.EN)==1)
{
插入字(t1->左,x);
}
否则如果(strcmp(t1->data.EN,x.EN)==0)
{
插入字(t1->右,x);
}
}
}
void InsertWordVN(字*t2,TD x)
{
如果(t2==NULL)
{
WORD*temp;
temp=新单词;
strcpy(temp->data.VN,x.VN);
temp->left=NULL;
temp->right=NULL;
t2=温度;
}
其他的
{
如果(strcmp(t2->data.VN,x.VN)==1)
{
插入字VN(t2->左,x);
}
否则如果(strcmp(t2->data.VN,x.VN)==0)
{
插入字vn(t2->右,x);
}
}
}
无效插入字(TD&x)
{
coutx.EN;
插入字en(t1,x);
coutx.VN;
插入字en(t2,x);
}
无效输出字(字*t)
{
如果(t1!=NULL)
{
coutabst基本上已经是一个字典了。你说“但是我不能在我的代码中输出2个树”是什么意思如果你遇到困难,无法进步,那通常是一个很好的尝试,为你的代码编写单元测试。通过把测试的、确认的工作位代码放在一起,你可以比试图从未经验证的部件中组装出来的东西远得多。如果这是C++代码,那么在代码中看到<代码> STRCMP <代码>是令人沮丧的。代码>只要可能。@Carcigenicate这意味着我不能在屏幕上显示t1和t2…它不工作,也不显示任何错误。我建议使用现有的数据结构,如std::set
或std::map
。