Se considera un árbol binario cuyo nodo es definido de la siguiente manera:
struct {
nodo* izquierdo;
nodo* derecho;
short numero;
};
En donde izquierdo y derecho son punteros a los dos subárboles del nodo. El árbol no tiene por que estar balanceado. El valor null en cualquiera de los índices (derecho o izquierdo) significa que el nodo no tiene un sucesor por la correspondiente rama del árbol.
Me costó un poco interpretar como se distribuye esta estructura en memoria, me gustaría saber si la conclusión a la que llegué es correcta:
Ya que el llamado a la función se hace pasando los parámetros segmento y offset de la dirección del subárbol asumo que tanto izquierdo como derecho son una combinación de segmento y offset y su valor es null cuando ambas son 0, es decir debe ser una palabra (16 bits) en 0. ¿Es correcto esto?
Y si es así, para comprobar si por ejemplo el valor de arbol.izquierdo es 0 siendo que arbol esta en la direccion DS:DX ¿es correcta la operacion CMP word ptr DS:DX, 0? y para arbol.derecho CMP word ptr DS:DX+4, 0
Gracias desde ya