复盘一个C++二叉树练习题
原程序:

出现几个问题:
1、写int 不是char

2、我这个是结构体,不能直接输出节点指针
而且指针是 bt->data, 因为是结构体所以不能直接*
一个小问题:什么时候在指针前面加*号,什么时候不加?
我的理解:如果是简单变量的 比如int *i ,那引用它指向的对象,那就直接cout<<*i。但是,我们这个指针是结构体的指针,不是简单变量的指针,他指向一个结构体,因此,你要输出的其实是它指向的结构体的某一个域,比如我们上面的题目是data域,那就是指针变量名->域 用这种方式。
3、赋值传递不过去
我的数组a[ ]、b[ ]没有把值传过去。所以导致系统返回值是有问题
解决方法:
2.1再换一下其他方式
2.2 或者用C++里面动态数组的方式
int n=0; cout << "请输入序列个数" << endl; cin >> n; char *a = new char[n]; cout << "请输入先序序列" << endl; for (int i = 0; i < n;i++) { cin >> a[i]; } char *b = new char[n]; cout << "请输入中序序列" << endl; for (int i = 0; i < n; i++) { cin >> b[i]; }
P.S. 记得是cpp文件,然后加上头文件iostream.h

浙公网安备 33010602011771号