Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- typedef struct
- {
- int edad;
- char nombre[20];
- }persona;
- typedef struct
- {
- persona unaPersona;
- struct nodo * siguiente;
- }nodo;
- nodo * inicLista();
- nodo * cargarNodo();
- nodo * crearNodo(persona unaPersona);
- nodo * agregarAlPpio(nodo * lista,nodo * nuevoNodo);
- void mostrarLista(nodo * lista);
- void mostrarUnaPersona(persona p);
- nodo * agregarMuchos(nodo * lista);
- void mostrarListaRecursivamente(nodo * lista);
- nodo * agregarMuchosRecursivo(nodo * lista,char mander);
- nodo * buscarUltimoLista(nodo * lista);
- nodo * agregarAlFinal(nodo * lista, nodo * nuevoNodo);
- int main()
- {
- nodo * lista = inicLista();
- nodo * ultimo = buscarUltimoLista(lista);
- if (ultimo!=NULL)
- mostrarUnaPersona(ultimo->unaPersona);
- else
- printf("lista vacia\n");
- lista = agregarMuchosRecursivo(lista,'s');
- mostrarListaRecursivamente(lista);
- ultimo = buscarUltimoLista(lista);
- if (ultimo!=NULL)
- mostrarUnaPersona(ultimo->unaPersona);
- else
- printf("lista vacia\n");
- }
- nodo * inicLista()
- {
- return NULL;
- }
- nodo * crearNodo(persona unaPersona)
- {
- nodo * nuevoNodo;
- nuevoNodo = (nodo*)malloc(sizeof(nodo));
- nuevoNodo->unaPersona = unaPersona;
- nuevoNodo->siguiente = NULL;
- return nuevoNodo;
- }
- nodo * cargarNodo()
- {
- nodo * nuevoNodo;
- persona personaNueva;
- printf("ingrese una edad\n");
- scanf("%d",&personaNueva.edad);
- printf("ingrese un nombre\n");
- fflush(stdin);
- scanf("%s",&personaNueva.nombre);
- nuevoNodo = crearNodo(personaNueva);
- return nuevoNodo;
- }
- nodo * agregarAlPpio(nodo * lista,nodo * nuevoNodo)
- {
- if (lista == NULL)
- {
- lista = nuevoNodo;
- }
- else
- {
- nuevoNodo->siguiente = lista;
- lista = nuevoNodo;
- }
- return lista;
- }
- void mostrarLista(nodo * lista)
- {
- nodo * seguidora = lista;
- while (seguidora!=NULL)
- {
- mostrarUnaPersona(seguidora->unaPersona);
- seguidora = seguidora->siguiente;
- }
- }
- void mostrarListaRecursivamente(nodo * lista)
- {
- nodo * seguidora = lista;
- if (seguidora!=NULL)
- {
- mostrarUnaPersona(seguidora->unaPersona);
- mostrarListaRecursivamente(seguidora->siguiente);
- }
- else
- {
- printf("FIN DE LA LISTA\n");
- }
- }
- void mostrarUnaPersona(persona p)
- {
- printf("%s\n",p.nombre);
- printf("%d\n",p.edad);
- printf("--------------\n");
- }
- nodo * agregarMuchos(nodo * lista)
- {
- char mander = 's';
- while (mander == 's')
- {
- nodo * nuevoNodo = cargarNodo();
- lista = agregarAlPpio(lista,nuevoNodo);
- printf("desea seguir? \n");
- fflush(stdin);
- scanf("%c",&mander);
- }
- return lista;
- }
- nodo * agregarMuchosRecursivo(nodo * lista,char mander)
- {
- if (mander == 's')
- {
- nodo * nuevoNodo = cargarNodo();
- lista = agregarAlFinal(lista,nuevoNodo);
- printf("desea seguir? \n");
- fflush(stdin);
- scanf("%c",&mander);
- lista = agregarMuchosRecursivo(lista,mander);
- }
- return lista;
- }
- nodo * buscarUltimoLista(nodo * lista)
- {
- nodo * ultimo;
- if (lista == NULL)
- {
- ultimo = NULL;
- }
- else
- {
- nodo * seguidora = lista;
- while (seguidora->siguiente !=NULL)
- {
- seguidora = seguidora->siguiente;
- }
- ultimo = seguidora;
- }
- return ultimo;
- }
- nodo * agregarAlFinal(nodo * lista, nodo * nuevoNodo)
- {
- if (lista==NULL)
- {
- lista = nuevoNodo;
- }
- else
- {
- nodo * ultimo = buscarUltimoLista(lista);
- ultimo->siguiente = nuevoNodo;
- }
- return lista;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement