listas encadenadas

Iniciado por wyuman, 7 Abril 2014, 05:36 AM

0 Miembros y 1 Visitante están viendo este tema.

wyuman

Buena noche compañeros, aca solicitando su ayuda, ya que no le entiendo a este error, si alguien puede ayudarme. Gracias.

Estoy aprendiendo a programar con C y estoy trabajando en estos momentos con listas encadenadas pero este error me estas saliendo y no le entiendo.

Este es el codigo que tengo

void insertdepa(struct depa **A, char linea2[]){
struct depa *n, *p;
mientras = strtok(linea2,"(");
while (mientras != NULL)
      {
      mientras = strtok(NULL," )");
if((*A)==NULL)
      {
          n = (struct depa *) malloc (sizeof(struct depa));
            n->dato = mientras;
            n->sig = NULL;
            n->con = NULL;
            (*A) = n;
         }else{
         p=(*A);
         while(p->sig!=NULL)
          {
            p=p->sig; [b]//Esta linea me muestra el primer error[/b]
            }
         n = (struct depa *) malloc (sizeof(struct depa));
         n->dato = mientras;
         n->sig = NULL;
         n->con = NULL;
         p->sig = n; [b]//este es la segunda linea con error[/b]
         }
      }
}


Y este es el error que obtengo.
Cannot Convert 'nodo *' to 'depa *'
Cannot Convert 'depa *' to 'nodo *'


Si alguien me puede ayudar se lo agradeciera muchisimo.

eferion

El problema lo tienes en la definición de tu estructura.

No la has puesto, pero tiene pinta que tiene una definición tal que


struct depa
{
  char* dato;
  struct nodo* sig;
  algo* con; // No queda claro el tipo de este, aunque es irrelevante.
};


Si mi deducción es correcta, esta parte del código funcionaría dejando la estructura así:


struct depa
{
  char* dato;
  struct depa* sig;
  algo* con;
};

wyuman

Si es correcto eferion ese era mi error,  ya pude insertar en mi lista.
Gracias.