Name: Anonymous 2012-05-04 18:13
New to /prog/, do you guys help other people with their codes? if so can you help me with one that's killing me from inside out? if not, let's discuss whatever you guys do here.
void insertar_elemento(lista * lista_actual, int elemento, unsigned int pos){
int i;
nodo *nvo_nodo;
nvo_nodo = (nodo *) malloc (sizeof(nodo));
nvo_nodo->dato = elemento;
if(lista_actual->primero == NULL && lista_actual->ultimo == NULL){
nvo_nodo->sig = NULL;
nvo_nodo->prev = NULL;
lista_actual->primero = nvo_nodo;
lista_actual->ultimo = nvo_nodo;
}else{
nvo_nodo->prev = NULL;
nvo_nodo->sig = lista_actual->primero;
for(i=0; i<=pos; i++){
if(i != pos && i < lista_actual->tamanio){
nvo_nodo->sig->prev = nvo_nodo->prev;
if(nvo_nodo->prev != NULL) nvo_nodo->prev->sig = nvo_nodo->sig;
nvo_nodo->prev = nvo_nodo->sig;
if(nvo_nodo->prev->sig == NULL){
nvo_nodo->sig = NULL;
nvo_nodo->prev->sig = nvo_nodo;
lista_actual->ultimo = nvo_nodo;
}else{
nvo_nodo->prev->sig->prev = nvo_nodo;
nvo_nodo->sig = nvo_nodo->prev->sig;
nvo_nodo->prev->sig = nvo_nodo;
}
if(i == 0)lista_actual->primero = nvo_nodo->prev;
}
}
}
++lista_actual->tamanio;
}