liust 提交的代码
提交时间:2022年6月26日 21:28 语言:C++运行时间:0ms占用内存:0K
运行状态: Compilation Error
Main.cpp: In function ‘void CreateBiTree(Node*&, char)’:
Main.cpp:25:31: error: too few arguments to function ‘void CreateBiTree(Node*&, char)’
         CreateBiTree(T->lchild);
                               ^
Main.cpp:16:6: note: declared here
 void CreateBiTree(BiTree &T,char ch) //Bitree &T:&表示取地å(C++),也可以冒作C的指针 Bitree *Tã‚
      ^
Main.cpp:26:31: error: too few arguments to function ‘void CreateBiTree(Node*&, char)’
         CreateBiTree(T->rchild);  //é’å½’ï 
题目:二叉树遍历1161

大会员可查看代码,点此开通大会员

                
                    #include <iostream>
#include <string>
#include <algorithm>
using namespace std;
/*定义二叉树的结构*/

typedef struct Node
{
    char data;                    /*数据域*/
    struct Node *lchild, *rchild; /*左子树和右子树*/
} * BiTree, BiNode;
    //实例化BiTree表示指向该结构体的指针(表示一棵树);BiNode是该结构体类型(表示一个指针)。


/*先需创建二叉树*/
void CreateBiTree(BiTree &T,char ch) //Bitree &T:&表示取地址(C++),也可以写作C的指针 Bitree *T。
                         //总之T是指向指针BiTree的指针,定义T是因为我们要修改BiTree,通过其指针修改。(?)
{
    if (ch == '#')
        T = NULL;
    else
    {
        T = new BiNode; /*创建一个新节点*/   //但是T不是node的指针的指针吗??
        T->data = ch;
        CreateBiTree(T->lchild);
        CreateBiTree(T->rchild);  //递归,输入先序遍历,创建出一个树。(递归!!)
    }
}
void InOrderTraverse(BiTree T)  //这时T是node的指针。
{
    /*中序遍历*/
    if (T)   //当指针非空,即有子树的时候
    {
		string sout;
		memset(sout,0,sout.size);
        InOrderTraverse(T->lchild);
        sout.push_back(T->data);   
		sout.push_back(" ");
        InOrderTraverse(T->rchild); 
    }
}

int main()
{
	string s;
    while(cin>>s)
	{
	BiTree T;
	for (int loc=0;loc<s.size();loc++)
	{
	char ch=s[loc];
    CreateBiTree(T,char ch);
	}
    InOrderTraverse(T);
	cout<<sout<<"\n";
	}
    return 0;
}