Duda sobre acceso a estructuras de de datos en memoria

Duda sobre acceso a estructuras de de datos en memoria

de Maria Valentina Da Silva De Souza -
Número de respuestas: 6
Hola en las diapositivas del teorico vi este ejemplo:

type nodo=
record
dato:integer;
hijoDer:byte;
hijoIzq:byte;
end
type arbol = array[0...(MAX_NODOS-1)] of nodo;

Y explican esto
i indice.
dato(baja)  n+ i*4 (dirección)
dato(alta)   n+ i*4 +1(dirección)
hijoDer      n+ i*4 +2(dirección)
hijoIzq       n+ i*4 +3(dirección)

que vendria a ser n en este ejemplo?
Para acceder a la variable hijoDer debo hacer [n+ i*4 +2] no? sindo i el indice del array.

Saludos.
En respuesta a Maria Valentina Da Silva De Souza

Re: Duda sobre acceso a estructuras de de datos en memoria

de Gonzalo Tejera -
Hola. El n es la base del array, a partir de esa dirección se encuentra la memoria reservada para él.

Sí fuera i = 0, en qué dirección queda el dato? el hijo izq? el hijo der?

Saludos, Gonzalo
En respuesta a Gonzalo Tejera

Re: Duda sobre acceso a estructuras de de datos en memoria

de Maria Valentina Da Silva De Souza -
Hola no entiendo tu pregunta.
hijoDer es una variable de tipo byte en este caso, y para i igual cero n+2 es la dirección de hijoDer, asi que si supongo que si hago [n+2], es como si en alto nivel estuviera accediendo a arbol[0].hijoDer

O hijoDer viene a ser la dirección de base de  otro array tipo arbol?

Saludos.
En respuesta a Maria Valentina Da Silva De Souza

Re: Duda sobre acceso a estructuras de de datos en memoria

de Gonzalo Tejera -
Hola. Sí, en [n+2] está el indice del hijo derecho.

Saludos, Gonzalo
En respuesta a Gonzalo Tejera

Re: Duda sobre acceso a estructuras de de datos en memoria

de Maria Valentina Da Silva De Souza -

mov ax,[n+2] ; ax contiene el indice del hijo derecho
mov cl,2
sal ax,cl ; desplazo ax 2 lugares a la izquierda
mov bx,ax
mov word ptr cx,[bx+n].

Con esto que hice quise dejar en cx el dato de dos bytes del hijoderecho para i=0.
Si esto esta mal, agradeceria que me dijeran porque, y como es la forma correcta de hacerlo.
 Desde ya muchas gracias.
Saludos.
En respuesta a Maria Valentina Da Silva De Souza

Re: Duda sobre acceso a estructuras de de datos en memoria

de Gonzalo Tejera -
Sí, es correcto salvo que el ptr se aplica al operando memoria no al registro.

Saludos