Código
#include<stdio.h> #include<stdlib.h> void insertarnodoinicio(); void insertarnodoalfinal(); void insertarentrenodos(); void eliminarnodoinicio(); void eliminarnodofinal(); void eliminarentredosnodos(); void buscarnumero(); void mostrarnodo(); typedef struct datos{ struct datos *psig; int numero; }dato; dato *cab=NULL; dato *n=NULL; dato *aux=NULL; dato *p=NULL; dato *q; int x,pos,numerodenodos=0,opc; int main() { do{ switch(opc){ case 1: insertarnodoinicio(); break; case 2: insertarnodoalfinal(); break; case 3: insertarentrenodos(); break; case 4: mostrarnodo(); break; case 5: buscarnumero(); break; case 6: eliminarnodoinicio(); break; case 7: eliminarnodofinal(); break; case 8: eliminarentredosnodos(); break; case 9: default: } }while(opc!=9); } void eliminarentredosnodos() { q=cab; int h=1; if (cab=NULL) else { while (q->numero!=x && h==1) { if (q->psig!=NULL) { p=q; q=q->psig; } else h=0; } if (p->psig==NULL) else { if (cab=q) cab=q->psig; else p->psig=q->psig; } delete(q); } } void eliminarnodofinal() { p=cab; if (cab==NULL) if (cab->psig==NULL) { delete (cab); cab=NULL; } else { while(p->psig!=NULL) { aux=p; p=p->psig; } aux->psig=NULL; delete p; numerodenodos--; } } void eliminarnodoinicio() { if (cab==NULL) else { aux=cab; cab=cab->psig; delete (aux); aux=NULL; numerodenodos--; } } void buscarnumero() { int eli; if (cab==NULL) { } else { q=cab; pos=1; while(q!=NULL && q->numero!=x) { q=q->psig; pos++; } if (q!=NULL) else { } } } void insertarnodoinicio(){ n->numero=x; n->psig=NULL; if(cab==NULL) cab=n; else{ n->psig=cab; cab=n; } numerodenodos++; } void mostrarnodo() { if(cab==NULL) else{ p=cab; while(p!=NULL){ p=p->psig; } } } void insertarnodoalfinal() { n->numero=x; n->psig=NULL; if(cab==NULL){ cab=n; numerodenodos++; } else{ p=cab; while(p->psig!=NULL) { p=p->psig; } p->psig=n; numerodenodos++; } } void insertarentrenodos() { if(cab==NULL) else { if(pos> numerodenodos || pos==1) else { n->numero=x; n->psig=NULL; aux=cab; for(int i=1; i<pos-1; i++) { aux=aux->psig; } n->psig=aux->psig; aux->psig=n; numerodenodos++; } } }