error C2664: 'printf' : cannot convert parameter 1 from 'char' to 'const char *',该怎么修改?
typedefintStatus;//Status是函数的类型,其值是函数结果状态代码,如OK等typedefintBoolean;//Boolean是布尔类型,其值是T...
typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等
typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSE
typedef char TElemType;
//#define MAX_TREE_SIZE 100
//typedef TElemType SqBiTree[MAX_TREE_SIZE];
//SqBiTree bt;
typedef struct BiTNode { // 结点结构
TElemType data;
struct BiTNode *lchild, *rchild; // 左右孩子指针
} BiTNode, *BiTree;
Status CreateBiTree(BiTree &T){
//按先序次序输入二叉树中节点的值,空格字符表示空数,构造二叉链表表示的二叉树T
char ch;
scanf("%c",&ch);
if(ch==' ')
T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}//CreateBiTree
void PreOrderTraverse (BiTree T)
{ // 先序遍历二叉树
if (T) {
printf(T->data); // 访问根结点
PreOrderTraverse(T->lchild); //先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
} 展开
typedef int Boolean; // Boolean是布尔类型,其值是TRUE或FALSE
typedef char TElemType;
//#define MAX_TREE_SIZE 100
//typedef TElemType SqBiTree[MAX_TREE_SIZE];
//SqBiTree bt;
typedef struct BiTNode { // 结点结构
TElemType data;
struct BiTNode *lchild, *rchild; // 左右孩子指针
} BiTNode, *BiTree;
Status CreateBiTree(BiTree &T){
//按先序次序输入二叉树中节点的值,空格字符表示空数,构造二叉链表表示的二叉树T
char ch;
scanf("%c",&ch);
if(ch==' ')
T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
exit(OVERFLOW);
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return OK;
}//CreateBiTree
void PreOrderTraverse (BiTree T)
{ // 先序遍历二叉树
if (T) {
printf(T->data); // 访问根结点
PreOrderTraverse(T->lchild); //先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
} 展开
1个回答
展开全部
把:
void PreOrderTraverse (BiTree T)
{ // 先序遍历二叉树
if (T) {
printf(T->data); // 访问根结点
PreOrderTraverse(T->lchild); //先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
}
这段代码中的:
printf(T->data); // 访问根结点
改成:
printf("%c",T->data);
就可以了,因为printf必须要一个格式化字符串来描述你想输出的内容是什么,我根据你的代码用了%c,表明输出的是一个字符char
void PreOrderTraverse (BiTree T)
{ // 先序遍历二叉树
if (T) {
printf(T->data); // 访问根结点
PreOrderTraverse(T->lchild); //先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
}
这段代码中的:
printf(T->data); // 访问根结点
改成:
printf("%c",T->data);
就可以了,因为printf必须要一个格式化字符串来描述你想输出的内容是什么,我根据你的代码用了%c,表明输出的是一个字符char
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询