C++ C++;如何用二叉搜索树制作词典

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->

我想做一本字典,但我不能在我的代码中输出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->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