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* ptrAnt;
- struct nodo* ptrSig;
- }
- TNodo;
- void inserta_orden(TNodo **, int);
- void imprime_lista(TNodo *);
- int main(int argc, char** argv) {
- TNodo *ptrListaDE = NULL;
- inserta_orden(&ptrListaDE, 15);
- inserta_orden(&ptrListaDE, 05);
- inserta_orden(&ptrListaDE, 20);
- inserta_orden(&ptrListaDE, 13);
- imprime_lista(ptrListaDE);
- return (EXIT_SUCCESS);
- }
- void inserta_orden(TNodo **ptrListaDE, int valor){
- TNodo *ptrNuevo, *ptrAnterior, *ptrRecorrido;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->valor = valor;
- ptrNuevo->ptrAnt = ptrNuevo->ptrSig = NULL;
- ptrAnterior = NULL;
- ptrRecorrido = *ptrListaDE;
- while (ptrRecorrido && ptrRecorrido->valor < valor){
- ptrAnterior = ptrRecorrido;
- ptrRecorrido = ptrRecorrido->ptrSig;
- }
- if (ptrAnterior){
- ptrNuevo->ptrSig = ptrAnterior->ptrSig;
- if (ptrAnterior->ptrSig)
- ptrAnterior->ptrSig->ptrAnt = ptrNuevo;
- ptrAnterior->ptrSig = ptrNuevo;
- ptrNuevo->ptrAnt = ptrAnterior;
- }
- else{
- ptrNuevo->ptrSig = *ptrListaDE;
- if (*ptrListaDE)
- (*ptrListaDE)->ptrAnt = ptrNuevo;
- *ptrListaDE = ptrNuevo;
- }
- }
- void imprime_lista(TNodo * ptrLista){
- while (ptrLista != NULL){
- printf(" %d ", ptrLista->valor);
- ptrLista = ptrLista->ptrSig;
- }
- printf("NULL\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement