Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef
- struct nodo{
- int valor;
- struct nodo* ptrSig;
- }
- TNodo;
- int lista_vacia(TNodo *);
- void inserta_inicio(TNodo **, int);
- void inserta_final(TNodo **, int);
- void inserta_final2(TNodo **, TNodo **, int);
- void inserta_orden(TNodo **, int);
- void imprime_lista(TNodo *);
- void libera_lista(TNodo *);
- int main(int argc, char** argv) {
- TNodo * ptrListaSE = NULL;
- TNodo * ptrUltimo = NULL;
- inserta_orden(&ptrListaSE, 15);
- inserta_orden(&ptrListaSE, 05);
- inserta_orden(&ptrListaSE, 20);
- inserta_orden(&ptrListaSE, 13);
- /*
- inserta_inicio(&ptrListaSE, 15);
- inserta_inicio(&ptrListaSE, 17);
- inserta_inicio(&ptrListaSE, 20);
- *
- inserta_final(&ptrListaSE, 15);
- inserta_final(&ptrListaSE, 17);
- inserta_final(&ptrListaSE, 20);
- inserta_final2(&ptrListaSE, &ptrUltimo, 15);
- inserta_final2(&ptrListaSE, &ptrUltimo, 17);
- inserta_final2(&ptrListaSE, &ptrUltimo, 20);
- */
- imprime_lista(ptrListaSE);
- libera_lista(ptrListaSE);
- return (EXIT_SUCCESS);
- }
- void inserta_inicio(TNodo **ptrListaSE, int valor){
- TNodo *ptrNuevo;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->valor = valor;
- ptrNuevo->ptrSig = *ptrListaSE;
- *ptrListaSE = ptrNuevo;
- }
- void inserta_final(TNodo **ptrListaSE, int valor){
- TNodo *ptrNuevo, *ptrUltimo, *ptrRecorrido;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->valor = valor;
- ptrNuevo->ptrSig = NULL;
- ptrRecorrido = *ptrListaSE;
- ptrUltimo = NULL;
- while (ptrRecorrido){
- ptrUltimo = ptrRecorrido;
- ptrRecorrido = ptrRecorrido->ptrSig;
- }
- if (ptrUltimo)
- ptrUltimo->ptrSig = ptrNuevo;
- else
- (*ptrListaSE) = ptrNuevo;
- }
- void inserta_final2(TNodo **ptrListaSE, TNodo **ptrUltimo, int valor){
- TNodo *ptrNuevo;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->valor = valor;
- ptrNuevo->ptrSig = NULL;
- if (*ptrUltimo)
- (*ptrUltimo)->ptrSig = ptrNuevo;
- else
- (*ptrListaSE) = ptrNuevo;
- *ptrUltimo = ptrNuevo;
- }
- void inserta_orden(TNodo **ptrListaSE, int valor){
- TNodo *ptrNuevo, *ptrAnterior, *ptrRecorrido;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->valor = valor;
- ptrNuevo->ptrSig = NULL;
- ptrAnterior = NULL;
- ptrRecorrido = *ptrListaSE;
- while (ptrRecorrido && ptrRecorrido->valor < valor){
- ptrAnterior = ptrRecorrido;
- ptrRecorrido = ptrRecorrido->ptrSig;
- }
- if (ptrAnterior){
- ptrNuevo->ptrSig = ptrAnterior->ptrSig;
- ptrAnterior->ptrSig = ptrNuevo;
- }
- else{
- ptrNuevo->ptrSig = *ptrListaSE;
- *ptrListaSE = ptrNuevo;
- }
- }
- int lista_vacia(TNodo * ptrListaSE){
- return ptrListaSE==NULL;
- }
- void imprime_lista(TNodo * ptrListaSE){
- while (ptrListaSE != NULL){
- /*printf(" %d ", (*ptrListaSE).valor);*/
- printf(" %d ", ptrListaSE->valor);
- ptrListaSE = ptrListaSE->ptrSig;
- }
- printf("NULL\n");
- }
- void libera_lista(TNodo * ptrListaSE){
- TNodo * ptrEliminar;
- while (ptrListaSE != NULL){
- ptrEliminar = ptrListaSE;
- ptrListaSE = ptrListaSE->ptrSig;
- free(ptrEliminar);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement