Listas

Elavorar una funcion que reciva el apuntador p al primer nodo de una lista y devuelva el numero de nodos que la componen

1 respuesta

Respuesta
1
Si tu lista es como esta:
struct lista {
struct lista *next;
int contenido;
};
typedef struct lista LISTA;
entonces puedes usar la siguiente función para calcular el número de nodos de la lista:
int NumNodos(LISTA *p) {
int num=0;
while (p != NULL) {
num++;
p = p->next;
}
return num;
}
Te advierto que "p" debe ser un apuntador a un nodo, de lo contrario puedes causar que el sistema se bloquee.
rober_
p esta apuntando al nodo next o estoy equivocado
Al comenzar la función, p apunta al primer nodo de la lista, se pone num=0, para comenzar a contar desde 0, el while (p! =NULL) significa que se va a recorrer la lista hasta que se encuentre el nodo con p->next igual NULL, lo cual nos indicará que es el último. Cada vez que se pasa por un nodo, se incrementa num en 1.
P = p->next significa que se hace que p apunte a su siguiente nodo, cuando p->next es NULL (ultimo nodo), p se hace NULL, por lo que en la siguiente verificación de la condición del while, esta se hace falsa y sale del ciclo y retorna el numero de nodos recorridos.
rober_

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas