como se podrán imaginar aveces hago post que se me ocurren a mí solamente, pero si los hago es porque me resulta de mucha ayuda para aprender en serio y no en distintas ocasiones tener que copiar y pegar. -
Les dejo la función para que en primer lugar me ayuden a documentarla, yo hice algunas lineas para que la tomen como Ej. para que se entienda lo que necesito. -
Si alguien tiene otra versión y la quiere postear, mi agradecimiento. -
Código
struct lista *eliminarIndice( struct lista *L, int indice){ int i = 1; if( L != NULL ){ // Verificamos que la lista no este vacia. if( indice <= 10 && indice > 0){ // Si indice es mayor a cero y menor o igual a la cant. de elemento continuamos. struct nodo *anterior = L->primero; // Grabamos en anterior la direc. del primer nodo. struct nodo *pivote = L->primero; // Y lo mismo con pivote. while( i < indice ){ // Bucle para.... anterior = pivote; pivote = pivote->siguiente; i++; } if( pivote->siguiente != NULL ){ if( pivote->siguiente != L->primero ){ anterior->siguiente = pivote->siguiente; }else{ L->primero = pivote->siguiente; } }else{ if( pivote != L->primero ){ anterior->siguiente = NULL; L->ultimo = anterior; }else{ } } L->elementos--; if( L->elementos == 0){ return NULL; }else{ return L; } }else{ return L; } }else{ return NULL; } }
Saludos.