当前位置:首页 > 开发语言/框架 > C++

求大牛指点

优良自学吧提供求大牛指点,求大牛指导#include <iostream> using namespace std; #include <stdlib.h> typedef int Type; struct&

求大牛指导
#include <iostream>
using namespace std;
#include <stdlib.h>

typedef int Type;

struct BiNode
{
    Type data;
    BiNode *L,*R;
};

void CreatTree(BiNode *ptr)
{/*ÏÈÐòÊäÈ룬µÝ¹éµ÷ÓÃ
    */

    Type data;
    cin>>data;
    if(!data)
        ptr=NULL;
    else
    {
        ptr=new BiNode;
        if(!ptr)
            exit(0);
        (*ptr).data=data;
        CreatTree((*ptr).L);
        CreatTree((*ptr).R);
    }
 //   return ptr;


}

void PrePrint(BiNode *ptr)
{
    if(ptr!=NULL)
    {
        cout<<ptr->data<<' ';
        PrePrint(ptr->L);
        PrePrint(ptr->R);
    }
}

int main()
{
    BiNode T;
    BiNode *Tptr=&T;
    CreatTree(Tptr);
//    cout<<(*Tptr).data<<endl;
    PrePrint(Tptr);
    return 0;
}

------解决思路----------------------
修改如下:

#include <iostream>
using namespace std;
#include <cstdlib>
typedef int Type;
struct BiNode
{
Type data;
BiNode *L, *R;
};
BiNode* CreatTree()
{
Type data;
BiNode *p;
cin >> data;
if (!data)
p = NULL;
else
{
p = new BiNode;
if (!p) exit(0);
p->data = data;
cout << "请输入 " << data << " 节点的左孩子 ";
p->L = CreatTree();
cout << "请输入 " << data << " 节点的右孩子 ";
p->R = CreatTree();
}
return p;
}
void PrePrint(BiNode *ptr)
{
if (ptr != NULL)
{
cout << ptr->data << ' ';  //根
PrePrint(ptr->L);   //左
PrePrint(ptr->R);   //右
}
}
int main()
{
BiNode *T;
T = CreatTree();
PrePrint(T);
return 0;
}
//1
//请输入 1 节点的左孩子 2
//请输入 2 节点的左孩子 4
//请输入 4 节点的左孩子 0
//请输入 4 节点的右孩子 0
//请输入 2 节点的右孩子 0
//请输入 1 节点的右孩子 3
//请输入 3 节点的左孩子 0
//请输入 3 节点的右孩子 0
//1 2 4 3


(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢