如何从strtok
指针获取字符串值并将其插入树中?
这是输入和除法部分:
printf("\nDigite a frase: ");
fgets(frase,TAM,stdin);
val=strtok(frase," (),.-;");
while(val!=NULL){
inserir(&raiz,val);
val = strtok (NULL, " (),.-;");
}
这是树中的插入:
void inserir(no **arvore, char val[]){
no *temp = NULL;
if(!(*arvore))
{
temp = (no *)malloc(sizeof(no));
temp->esq = temp->dir = NULL;
temp->dado = val;
temp->freq=1;
*arvore = temp;
return;
}
if(val < (*arvore)->dado)
{
inserir(&(*arvore)->esq, val);
}
else if(val > (*arvore)->dado)
{
inserir(&(*arvore)->dir, val);
}
else if(val==(*arvore)->dado){
(*arvore)->freq++;
}
}
我需要插入部分来比较字符串的值,但它会比较指针的值。
答案 0 :(得分:1)
谢谢@gbtimmon。我将比较方法更改为:
int comp=strcmp(val, (*arvore)->dado);
if(comp<0)
{
inserir(&(*arvore)->esq, val);
}
else if(comp>0)
{
inserir(&(*arvore)->dir, val);
}
else if(comp==0){
(*arvore)->freq++;
}