Lista simplemente ligada, archivo cabecera

#ifndef LSL_H_INCLUDED #define LSL_H_INCLUDED #include<stdio.h> #include<conio.h> #include<windows.h> typedef int elemento; typedef struct Nodo{ elemento dato; Nodo* sig; }; typedef Nodo* ap;//apun la estructura nodo tador typedef Nodo* posicion; void anula(ap &L) { //L = new Nodo ; L= NULL; } int vacia (ap L) { if(L==NULL) return 1; return 0; } posicion siguiente(posicion p,ap L) { if(!vacia(L)) return p->sig; } void inserta(ap &L, elemento x, ap pos) { ap aux = new Nodo;//Reserva espacio para un apuntador auxiliar, que apunta a la estructura if(aux == NULL)//si ya no hay memoria regresa algo, investigar que regresa. No estoy seguro que sea NULL { printf("Ya no hay memoria\n"); } else { aux->dato = x;//asigna el dato a el apuntador auxiliar if(vacia(L))//asigna cuando esta vacia { aux->sig=NULL; L=aux; }else { if(pos==NULL)//asigna al principio con datos { aux->sig=L; L=aux; }else//asigna en medio { aux->sig=pos->sig; pos->sig=aux; } } } } int suprime(ap &L, ap pos) { if(!vacia(L)) { ap aux; if(pos->sig == NULL) return 0; else { aux = pos->sig;//se gurda en el apuntador el siguiente de la posicion pos->sig = aux->sig;//se crea delete(aux); return 1; } } } posicion localiza(ap L, elemento x) { int bandera=0; if(vacia(L)) { return NULL; } else { ap aux; ap pos; aux=L; pos=NULL; while(aux!=NULL && bandera==0) { if(aux->dato==x) bandera=1; else { pos=aux; aux=aux->sig; } } return pos; } } void imprime (ap L) { ap aux; if(vacia(L)) printf("\nLista vacia\n"); else { aux=L; while(aux!=NULL) { printf(" %i ",aux->dato); aux=aux->sig; } } } elemento recupera(ap L, posicion x) { if(vacia (L)) { printf("\nLista vacia\n"); return -1; } else return x->dato; } posicion primero(ap L) { return L; } #endif // LSL_H_INCLUDED

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.