Código de C/Visual C - Implementación de una pila mediante lista enlazada en C++

Versión 1

Publicado el 13 de Febrero del 2002gráfica de visualizaciones de la versión: Versión 1
25.272 visualizaciones desde el 13 de Febrero del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Implementación en C++ de una pila mediante listas enlazadas. Para ello utilizamos una cabecera fictícia. Realización en forma dinámica.
Se crea una estructura con un entero clave y un apuntador a estructura siguiente.

{Pre}={Existe estructura tipo_pila pila}
   void crear(struct tipo_pila **pila)
{Post}={Se ha creado la pila apuntadora a NULL}

{Pre}={Existe elemento pila, elem tiene valor}
   void apilar_pila(struct tipo_pila *pila, int elem)
{Post}={pila=pila+elemento añadido}

{Pre}={Existe elemento pila, existe elem}
   void desapilar_pila(struct tipo_pila *pila, int *elem)
{Post}={pila=pila-ultimo valor añadido y elem apunta al valor descargado de la pila}

{Pre}={Existe pila}
   void es_vacia(struct tipo_pila *pila)
{Post}={Cierto si la pila está vacía. Falso por lo contrario}
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
/* -------------------------------------------------- */
/* Implementación de una pila mediante lista enlazada */
/* ------ http://www.lawebdelprogramador.com -------- */
/* -------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
 
/* declaracion de la pila*/
struct tipo_pila
{
	int clave;
	struct tipo_pila *sig;
};
 
/* Cabeceras de prototipos de funciones */
void crear_pila(struct tipo_pila **pila);
int es_vacia(struct tipo_pila *pila);
void apilar_pila(struct tipo_pila *pila, int elem);
void desapilar_pila(struct tipo_pila *pila, int *elem);
 
void crear_pila(struct tipo_pila **pila)
{
	*pila=(struct tipo_pila *) malloc(sizeof(struct tipo_pila));
	(*pila)->sig=NULL;
}
 
void apilar_pila(struct tipo_pila *pila, int elem)
{
	struct tipo_pila *nuevo;
	nuevo=(struct tipo_pila *) malloc(sizeof(struct tipo_pila));
	nuevo->clave=elem;
	nuevo->sig=pila->sig;
	pila->sig=nuevo;
}
 
void desapilar_pila(struct tipo_pila *pila, int *elem)
{
	struct tipo_pila *aux;
	aux=pila->sig;
	*elem=aux->clave;
	pila->sig=aux->sig;
	free(aux);
}
 
int es_vacia(struct tipo_pila *pila)
{
	return (pila->sig==NULL);
}
 
/* programa principal */
main(void)
{
	struct tipo_pila *pila;
	int elem;
	crear_pila(&pila);
	if (es_vacia(pila)) printf("\nPila vacia!");
	apilar_pila(pila, 1);
	desapilar_pila(pila, &elem);
}



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s85