复盘一个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

posted @ 2022-03-10 17:20  乘着风·轻舟过  阅读(54)  评论(0)    收藏  举报