Page 297

4 Estructuras de datos: memoria din´amica

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

for (atras = NULL, aux = lista; aux != NULL; atras = aux , aux = aux ->sig) if (valor <= aux ->info) { /* Aqu´ı insertamos el nodo entre atras y aux. */ nuevo->sig = aux ; if (atras == NULL) lista = nuevo; else atras->sig = nuevo; /* Y como ya est´ a insertado, acabamos. */ return lista; } /* Si llegamos aqu´ı, es que nuevo va al final de la lista. */ nuevo->sig = NULL; if (atras == NULL) lista = nuevo; else atras->sig = nuevo; return lista;

164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182

}

183 184 185 186 187

TipoLista concatena_listas(TipoLista a, TipoLista b) { TipoLista c = NULL; struct Nodo * aux , * nuevo, * anterior = NULL;

188

for (aux = a; aux != NULL; aux = aux ->sig) { nuevo = malloc( sizeof (struct Nodo) ); nuevo->info = aux ->info; if (anterior != NULL) anterior ->sig = nuevo; else c = nuevo; anterior = nuevo; } for (aux = b; aux != NULL; aux = aux ->sig) { nuevo = malloc( sizeof (struct Nodo) ); nuevo->info = aux ->info; if (anterior != NULL) anterior ->sig = nuevo; else c = nuevo; anterior = nuevo; } if (anterior != NULL) anterior ->sig = NULL; return c;

189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210

}

211 212 213 214

TipoLista libera_lista(TipoLista lista) { struct Nodo *aux , *otroaux ;

215

aux = lista; while (aux != NULL) { otroaux = aux ->sig; free(aux ); aux = otroaux ; } return NULL;

216 217 218 219 220 221 222 223

} prueba lista.c

1

prueba lista.c

#include <stdio.h>

Introducci´ on a la Programaci´ on con C

291

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement