虚心请教各位大牛,帮我解决一下问题cannot convert parameter 1 from 'struct main::node *' to 'struc
题目是统计输入中所有单词的出现次数,采用二叉树的结构存储各个单词#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100
struct tnode
{
char * word;
int count;
struct tnode *left;
struct tnode *right;
};
/*在输入中得到单词*/
int getWord(char *word,int lim)
{
int c,getch();
void ungetch(int);//ungetch(int)是将多余的字符放回到输入中
char *w=word;
while(isspace(c=getch()))//isspace()函数跳过空白字符
{};
if(c!=EOF)
{
*w++=c;
}
if(!isalpha(c))//isalpha()函数识别字母
{
*w='\0';
return c;
}
for(;--lim>0;w++)
{
if(!isalnum(*w=getch()))//isalnum()函数识别字母和数字
{
ungetch(*w);
break;
}
}
*w='\0';
return word[0];
}
/*用二叉树的方法查找新单词的次数*/
struct tnode *binAddTree(struct tnode *p,char *w)
{
int cond;
if(p==NULL)
{
p=(struct tnode *)malloc(sizeof(struct tnode));
// p=talloc();
p->word=w;
p->left=NULL;
p->right=NULL;
p->count=1;
}
else if((cond=strcmp(w,p->word))==0)
{
p->count++;
}
else if(cond<0)
{
p->left=binAddTree(p->left,w);
}
else
{
p->right=binAddTree(p->right,w);
}
return p;
}
/*把节点打印出来*/
void printfTree(struct tnode *root)
{
if(root!=NULL)
{
printfTree(root->left);
printf("%s",root->word);
printfTree(root->right);
}
}
void main()
{
struct node * root;
char word[MAX];
root=NULL;
while(getWord(word,MAX)!=EOF)
{
if(isalpha(word[0]))
{
root=binAddTree(root,word);
}
}
printfTree(root);
}
在这里root=binAddTree(root,word)出现错误:error C2664: 'binAddTree' : cannot convert parameter 1 from 'struct main::node *' to 'struct tnode *'
求教各位大牛,怎样解决啊!!!