Mitad de una lista doble
Publicado por Jhonny (10 intervenciones) el 30/07/2016 21:55:48
Hola amigos tengo el siguiente problema, de una lista doblemente enlazada, quiero saber cual es el nodo que esta en la mitad de la lista y su valor, ejemplo si tengo esta lista {4,5,6,8,9,1,3}, deberia imprimirme el 8.
He implementado estas dos funciones, una actualiza el nodo cada ves que se inserta un valor en la lista y otro para obtener el nodo de la mitad.
Pero esto me da error, se queda pegada la ejecucion cuando inserto mas de un valor a la lista!
Alguna idea de porque sucede? Gracias.
He implementado estas dos funciones, una actualiza el nodo cada ves que se inserta un valor en la lista y otro para obtener el nodo de la mitad.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void ActMitad(bool mitad){
if( cont == 0 ){
mit = NULL;
}
else{
int remainder = cont%2;
if(mitad){
if( remainder == 0 ){
mit = mit->prev;
}
}
else{
if( remainder == 1 ){
mit = mit->next;
}
}
if( cont == 1 ){
mit = first;
}
}
}
int avelider(){
if( cont > 0 ) return mit->edad;
else return -1;
}
Pero esto me da error, se queda pegada la ejecucion cuando inserto mas de un valor a la lista!
Alguna idea de porque sucede? Gracias.
Valora esta pregunta


0