Lista simplemente enlazada
Publicado por julio leonel (6 intervenciones) el 01/05/2020 21:43:43
Buenas tardes, quisiera si alguien me puede orienter un poco sobre como resolver el punto c de este ejercicio, no se como eliminar los dos nodos en cuestion, dejo adjunto el codigo que hice donde resuelvo los dos primeros puntos,
Crear una lista de números enteros, diseñar las siguientes funciones:
a. Determinar cuál es el máximo elemento y mostrarlo por pantalla.
b. Determinar cuál es el mínimo elemento y mostrarlo por pantalla.
c. Eliminar de la lista el máximo y el mínimo, utilizando las funciones desarrolladas en los puntos anteriores.
Crear una lista de números enteros, diseñar las siguientes funciones:
a. Determinar cuál es el máximo elemento y mostrarlo por pantalla.
b. Determinar cuál es el mínimo elemento y mostrarlo por pantalla.
c. Eliminar de la lista el máximo y el mínimo, utilizando las funciones desarrolladas en los puntos anteriores.
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <stdio.h>
#include <stdlib.h>
typedef struct nodo
{
int dato;
struct nodo * siguiente;
} Nodo;
Nodo * CrearNodo (int dato);
int InsertarInicio (Nodo **cabeza, int dato);
void ImprimirLista (Nodo * cabeza);
int MayorNodo (Nodo * cabeza);
int MenorNodo (Nodo * cabeza);
int main ()
{
Nodo * cabeza = NULL;
int mayor, menor;
InsertarInicio(&cabeza,5);
InsertarInicio(&cabeza,-23);
InsertarInicio(&cabeza,25);
InsertarInicio(&cabeza,14);
printf("Lista de nodos con su contenido:\n");
ImprimirLista(cabeza);
printf("\n");
mayor = MayorNodo (cabeza);
printf("El nodo que contiene el dato mayor: %d", mayor);
printf("\n");
menor = MenorNodo (cabeza);
printf("El nodo que contiene el dato menor: %d", menor);
printf("\n");
return 0;
}
Nodo * CrearNodo (int dato)
{
Nodo * nuevo = NULL;
nuevo = (Nodo *)malloc(sizeof(Nodo));
if (nuevo == NULL)
{
printf("Me quede sin memoria");
exit(-1);
}
nuevo->dato = dato;
nuevo->siguiente = NULL;
}
int InsertarInicio (Nodo **cabeza, int dato)
{
Nodo * nuevo = NULL;
nuevo = CrearNodo(dato);
if(nuevo != NULL)
{
nuevo->siguiente = *cabeza;
*cabeza = nuevo;
}
}
void ImprimirLista(Nodo * cabeza)
{
Nodo * nAux = cabeza;
while(nAux != NULL)
{
printf("Nodo: %d\n", nAux->dato);
nAux = nAux ->siguiente;
}
}
int MayorNodo (Nodo * cabeza){
int mayor = cabeza->dato;
while (cabeza != NULL)
{
if(cabeza->dato > mayor)
{
mayor = cabeza->dato;
}
cabeza = cabeza->siguiente;
}
return mayor;
}
int MenorNodo (Nodo * cabeza){
int menor = cabeza->dato;
while (cabeza != NULL)
{
if(cabeza->dato < menor)
{
menor = cabeza->dato;
}
cabeza = cabeza->siguiente;
}
return menor;
}
Valora esta pregunta


0