
Errores de compilación en lista enlazadas.
Publicado por emi (1 intervención) el 23/08/2022 02:58:53
Creé un programa en el que el usuario ingresa números enteros y luego estos se insertan al final de una lista enlazada, acto seguido el programa imprime cuál es el último valor que se encuentra en la lista. El código es el siguiente:
Al compilar me aparecen los siguientes errores:
Estuve un buen rato dándole vueltas pero no estaría sabiendo cómo solucionarlos, si me pueden dar una mano se agradece infinitamente. Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
struct nodo {
int elem;
nodo *sig;
};
typedef nodo *lista;
lista generarLista(lista *p, int value);
int last(lista p);
int main() {
lista *l = NULL;
int largo, x, cont = 0;
printf("Cantidad de elementos de la lista: ");
scanf("%d",&largo);
do {
printf("Inserte el elemento %d de la lista: ",cont);
scanf("%d",&x);
cont++;
l = generarLista(&l, x);
} while (cont <= largo);
printf("El último elemento de la lista es: %d",last(l));
return 0;
}
lista generarLista(lista *p, int value) {
lista *q, *aux = p;
q = new nodo;
q->elem = value;
q->sig = NULL;
if (aux == NULL) {
p = q;
} else {
while (aux->sig != NULL) {
aux = aux->sig;
}
aux->sig = q;
}
return aux;
}
int last(lista p) {
int aux;
while (p->sig != NULL) {
aux = p->elem;
p->sig = p;
}
return aux;
}
Al compilar me aparecen los siguientes errores:
1
2
3
4
5
6
7
8
9
main.cpp:25:26: error: cannot convert ‘nodo***’ to ‘nodo**
main.cpp:28:58: error: cannot convert ‘nodo**’ to ‘lista’ {aka ‘nodo*’}
main.cpp:35:9: error: cannot convert ‘nodo*’ to ‘nodo**’ in assignment
main.cpp:36:10: error: request for member ‘elem’ in ‘* q’, which is of pointer type ‘lista’ {aka ‘nodo*’} (maybe you meant to use ‘->’ ?)
main.cpp:37:8: error: request for member ‘sig’ in ‘* q’, which is of pointer type ‘lista’ {aka ‘nodo*’} (maybe you meant to use ‘->’ ?)
main.cpp:42:21: error: request for member ‘sig’ in ‘* aux’, which is of pointer type ‘lista’ {aka ‘nodo*’} (maybe you meant to use ‘->’ ?)
main.cpp:43:24: error: request for member ‘sig’ in ‘* aux’, which is of pointer type ‘lista’ {aka ‘nodo*’} (maybe you meant to use ‘->’ ?)
main.cpp:45:14: error: request for member ‘sig’ in ‘* aux’, which is of pointer type ‘lista’ {aka ‘nodo*’} (maybe you meant to use ‘->’ ?)
main.cpp:47:12: error: cannot convert ‘nodo**’ to ‘lista’ {aka ‘nodo*’} in return
Estuve un buen rato dándole vueltas pero no estaría sabiendo cómo solucionarlos, si me pueden dar una mano se agradece infinitamente. Gracias.
Valora esta pregunta


0