Lista doble enlazada con funciones
// Agregar funciones:
// Inicializa, CreaNodo y ListaVacia
#include
struct TipoNodo
{ int Info;
TipoNodo *AptrFrente;
TipoNodo*AptrAtras;
};
typedef struct TipoNodo TN;
struct TipoListaDoble
{ TN *AptrInicio;
TN *AptrFin;
};
typedef struct TipoListaDoble TLD;
void Anadir ( TLD*, int);
int Elimina(TLD*);
void Listado (TLD);
void Libera (TLD*);
void DuplicaEspejo (TLD &);
int main ()
{ TLD Lista;
Lista.AptrInicio = NULL;
Lista.AptrFin = NULL;
int Opcion, Valor;
printf("Programa para Doblemente enlazadas con funciones \n");
do
{ printf("\n\n Menu\n");
printf("1) Añade al final\n");
printf("2) Elimina al inicio\n");
printf("3) Listado \n");printf("4) Duplica en Espejo\n");
printf("5) Salir \n");
printf("Seleciona una opcion:");
scanf("%d",&Opcion);
printf ("\n");
switch (Opcion)
{case 1: printf ("Añade\n");
printf ("Teclea un valor:");
scanf ("%d",&Valor);
Anadir (&Lista, Valor);
break;
case 2: printf ("Elimina \n");
if (Lista.AptrInicio == NULL)
printf ("Error.- La lista esta vacia \n");
else
{ Valor = Elimina (&Lista);
printf ("Valor eliminado por lafuncion: %d \n",Valor);
}
break;
case 3: printf (" Listado \n");
printf ("Inicio \n");
Listado (Lista);
printf ("Final \n");break;
case 4: printf ("Duplica en Espejo\n");
printf ("Duplicado: %d \n", Valor);
DuplicaEspejo(Lista);
break;
case 5: printf("Fin del programa \n");
Libera (&Lista);
break;
default: printf ("Opcion No valida\n");
break;
} /* del switch */
}while (Opcion != 5);
return 0;
}...
Regístrate para leer el documento completo.