Page 274

4.6 Listas con enlace simple

4.6.1.

Creaci´ on de lista vac´ıa

Nuestra primera funci´ on crear´ a una lista vac´ıa. El prototipo de la funci´on, que declaramos en la cabecera lista.h, es ´este: lista.h ... extern TipoLista lista_vacia(void);

y la implementaci´ on, que proporcionamos en una unidad de compilaci´on lista.c, resulta trivial: lista.c 1 2

#include <stdlib.h> #include "lista.h"

3 4 5 6 7

TipoLista lista_vacia(void) { return NULL; }

La forma de uso es muy sencilla: 1 2

#include <stdlib.h> #include "lista.h"

3 4 5 6

int main(void) { TipoLista lista;

7

lista = lista_vacia();

8 9

return 0;

10 11

}

Ciertamente podr´ıamos haber hecho lista = NULL, sin m´as, pero queda m´as elegante proporcionar funciones para cada una de las operaciones b´asicas que ofrece una lista, y crear una lista vac´ıa es una operaci´ on b´ asica.

4.6.2.

¿Lista vac´ıa?

Nos vendr´ a bien disponer de una funci´on que devuelva cierto o falso en funci´on de si la lista est´a vac´ıa o no. El prototipo de la funci´on es: lista.h ... extern int es_lista_vacia(TipoLista lista);

y su implementaci´ on, muy sencilla: lista.c 1 2 3 4

int es_lista_vacia(TipoLista lista) { return lista == NULL; }

4.6.3.

Inserci´ on por cabeza

Ahora vamos a crear una funci´ on que inserta un elemento en una lista por la cabeza, es decir, haciendo que el nuevo nodo sea el primero de la lista. Antes, veamos cu´al es el prototipo de la funci´on: lista.h ... extern TipoLista inserta_por_cabeza(TipoLista lista, int valor );

268

Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement