我正在尝试创建一个在二叉树中插入节点的函数,但是我从C编译器得到以下错误: 省略参数名称。
我的代码中有几个字在葡萄牙语中,所以我会写下他们的翻译:
有人可以帮助我吗?
这是功能:
void insere_Arvore(nodo* raiz, registro){
if(raiz == NULL)
{
return 0
}
nodo* novo = (nodo*)malloc(sizeof(nodo));
if(novo == NULL)
return 0;
novo->dado->valor = valor1;
novo->dir = NULL;
novo->esq= NULL;
if(*raiz = NULL)
{
*raiz = novo;
}
else{
nodo* atual = *raiz;
nodo* ant = NULL;
}
while(atual != NULL)
{
ant = atual;
if (valor1 == atual->dado->valor){
free(novo);
return 0;
}
if(valor1 > atual->dado->valor)
{
atual = atual->dir;
}
else{
atual = atual->esq;
}
if(valor1 > ant->dado->valor)
{
ant->dir = novo;
}
else{
ant->esq = novo;
}
if(valor > ant->dado->valor){
ant->dir = novo;
}
else{
ant->esq = novo;
}
}
return 1;
}
以下是我创建的所有结构:
typedef struct registro_st{ // sequência de objetos do mesmo tipo
char login[50];
char nome[50];
float valor;
struct registro *prox;
} registro;
typedef struct nodo_st{
registro *dado;
struct nodo_st *dir;
struct nodo_st *esq;
} nodo;
typedef struct Lista_st{
nodo *cabeca;
nodo *cauda;
int tamanho;
} lista;
nodo* raiz;
void insere_Arvore(nodo* raiz, registro){
if(raiz == NULL)
{
return 0
}
nodo* novo = (nodo*)malloc(sizeof(nodo));
if(novo == NULL)
return 0;
novo->dado->valor = valor1;
novo->dir = NULL;
novo->esq= NULL;
if(*raiz = NULL)
{
*raiz = novo;
}
else{
nodo* atual = *raiz;
nodo* ant = NULL;
}
while(atual != NULL)
{
ant = atual;
if (valor1 == atual->dado->valor){
free(novo);
return 0;
}
if(valor1 > atual->dado->valor)
{
atual = atual->dir;
else{
atual = atual->esq;
}
if(valor1 > ant->dado->valor)
{
ant->dir = novo;
}
else{
ant->esq = novo;
}
if(valor > ant->dado->valor){
ant->dir = novo;
}
else{
ant->esq = novo;
}
}
}
return 1;
}
答案 0 :(得分:1)
void insere_Arvore(nodo* raiz, registro)
int insere_Arvore(nodo* raiz, [int, char, smth] registro)