elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  regresar al primer nodo de lista
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: regresar al primer nodo de lista  (Leído 1,193 veces)
d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
regresar al primer nodo de lista
« en: 19 Octubre 2015, 04:16 am »

hola, tengo una lista doblemente enlazada, y estoy simulando el primer ajuste estatico de memoria, pero al realizar las asignaciones, la lista queda en el ultimo nodo y a pesar que tengo un nodo que referencia al anterior no puedo regresar, cosa que si puedo hacer con la lista donde tengo los procesos, el error me lo da exactamente en el ultimo while
Código
  1. void primerAjuste(Tlista &lista, Tlista &memoria){
  2.  
  3.   while(lista != NULL){
  4.  
  5.         if(memoria->estado != 0 && lista->nro < memoria->nro){
  6.  
  7.         lista->asignado = memoria->nro;
  8.  
  9.               memoria->estado = 0;
  10.  
  11.               lista = lista->sgte;
  12.  
  13.  
  14.                 while(memoria->anterior != NULL){
  15.  
  16.                     memoria = memoria->anterior; //regresamos al principio por
  17.                                                     //si hay bloques libres intermedios
  18.                     }//while
  19.  
  20.  
  21.  
  22.         }//if
  23.         else{
  24.  
  25.             memoria = memoria->sgte; //si proceso muy grande o bloque esta ocupado
  26.  
  27.         }//else
  28.  
  29.   }//while lista
  30.  
  31.   while(lista->anterior != NULL){    /*aqui me da error de violacion de direccion*/
  32.  
  33.     lista = lista->anterior;   /*intento regresar la lista al primer nodo*/
  34.   }//regresamos al principio a la lista
  35.                                                    /*porque si la dejo asi cuando intento verla*/
  36.                                                    /*no se puede porque queda en el ultimo nodo*/
  37. }
  38.  
  39.  


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: regresar al primer nodo de lista
« Respuesta #1 en: 19 Octubre 2015, 10:17 am »

Código
  1. while(lista != NULL)
Cuando salga del bucle, "lista" va a ser igual a NULL.

Lo que tienes que puedes hacer, es guardar un puntero al comienzo de la lista al principio.


En línea

d91

Desconectado Desconectado

Mensajes: 165


Ver Perfil
Re: regresar al primer nodo de lista
« Respuesta #2 en: 20 Octubre 2015, 18:24 pm »

la solucion fue trabajar con una copia de la lista, aunque me quedo con la duda, porque use una lista doblemente enlazada para poder ir de derecha a izquierda y viceversa y en esta ocasion no fue asi
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda en nodo de lista circular
Java
apolo85 3 4,181 Último mensaje 28 Noviembre 2009, 03:57 am
por egyware
Eliminar nodo de lista? « 1 2 »
Java
monsefoster 17 44,509 Último mensaje 10 Febrero 2010, 16:32 pm
por egyware
ejemplo de lista con nodo
Java
robiiii 1 2,541 Último mensaje 26 Julio 2012, 19:32 pm
por leogtz
Ayuda con funcion insertar nodo en lista!!!
Programación C/C++
mathias_vg 5 1,497 Último mensaje 10 Octubre 2015, 22:24 pm
por ivancea96
Eliminar nodo en lista enlazada: problema con el último nodo [C]
Programación C/C++
Rhessus 2 3,469 Último mensaje 20 Julio 2016, 06:08 am
por Rhessus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines