Pregunta: | 819 - PUNTEROS Y ARBOLES AVL |
Autor: | Mauricio Murgas |
Estimados compañeros, necesito información de arboles AVL implementados en el lenguaje C++ (estructuras, balanceo), información avanzada de punteros en C++ (Ej. nodos apuntando a una lista enlazada). de antemano Gracias!! |
Respuesta: | Felipe Navarro Juillet |
Mira loko... aca tengo un codigo implementado por mi de arboles avl.
Voy a postear solo los balanceos... si quieres mas informacion sobre la funcion ingresar, declarar y balancear, escribeme al correo. Arbol *RotacionDI(Arbol *nodoarb) { Arbol *nda=NULL; nda = nodoarb->der->izq; nodoarb->der->izq = nda->der; nda->der = nodoarb->der; nodoarb->der = nda->izq; nda->izq = nodoarb; nodoarb = nda; return nodoarb; } Arbol *RotacionDD(Arbol *nodoarb) { Arbol *nda=NULL; nda=nodoarb->der; nodoarb->der=nda->izq; nda->izq=nodoarb; nodoarb=nda; return nodoarb; } Arbol *RotacionII(Arbol *nodoarb) { Arbol *nda=NULL; nda=nodoarb->izq; nodoarb->izq=nda->der; nda->der=nodoarb; nodoarb=nda; return nodoarb; } Arbol *RotacionID(Arbol *nodoarb) { Arbol *nda=NULL; nda = nodoarb->izq->der; nodoarb->izq->der = nda->izq; nda->izq = nodoarb->izq; nodoarb->izq = nda->der; nda->der = nodoarb; nodoarb=nda; return nodoarb; } Dependiendo del tipo de recursion de tus funciones, aveces no es necesario implementar las rotaciones dobles, ya que la recusion se encarga de hacerlo solo con las simples.... |
Respuesta: | Marcos |
hola: Para poder encender los LEDS del teclado debes tenes dos posibilidades: 1-Usando la interrupción 16 para leer el byte de estado del teclado y activar cada uno de los bits que corresponden a los LEDS. 2-Accediendo a la dirección de memoria [$0040:$0017], poniendo la siguiente instrucción var1=mem[$0040:$0017]y lo que tenes que hacer es activar cada bit correspondiente a los LEDS.Con eso creo que queda solucionado el problema, contestame si es que te solucione el problema. |
Respuesta: | Meganuke |
Creo que la direccion es 0040:0017, porueva introduciendo los valores 10 , 30 , y 70 (hex) |
Respuesta: | Rogelio |
Por la largada de la respuesta, esta en el archivo resp819.txt |
Respuesta: | Javier Juambeltz |
El estado de los leds (mejor dicho de las teclas) se guarda en el byte ubicado en la posición de memoria 0040h:0097h. Manipulando los bits de este byte podés encender o apagar los leds Por la documentación que tengo yo el detalle de los bits es el siguiente: Los Bits 3 a 7 son para teclas como INSERT pero varían. Bit 4 --> SCROLL LOCK Los 4 bits inferiores son de sólo lectura, los 4 bits superiores pueden tanto leerse (para saber los estados de las teclas) como escribirse (para activar o desactivarlas). En todos los casos el bit igualado a 1 significa Led encendido, tecla presionada o tecla activada según el caso. Espero que te ayude |
Respuesta: | Cristóbal Tello |
Por la largada de la respuesta, esta en el archivo resp819b.txt |
Respuesta: | Aníbal Villalobos |
Por la largada de la respuesta, esta en el archivo resp819c.txt |
Respuesta: | Ellery Villalobos Vargas |
Hola Amigo. Mira sobre arboles AVL´s te recomiendo un libro que se llama : Algoritmos y estructuras de datos, de Niklaus Wirth, ahi econtraras las implementaciones de insercion y borrado en arboles AVL´s, ahora bien el unico inconveniente es que esta implementado en Modula-2, pero pasarlo C, es facil. Si tienes posibilidad de conseguir el libro esta bien , si no yo creo que puedo conseguir esa implementacion en algun lado. Sobre punteros en C, como que tipo de informacion ocupas y yo te puedo contestar. Hasta Luego |
Respuesta: | Jose L. De la Cruz |
Hola, esta pequeña rutina activa la led de la tecla Mayusculas:mov ax,40hEspero que te sirva de ayuda...
|
Respuesta: | Antoni Sanoguera |
En la posición &H0040:0017 se encuentra un byte que contiene el estado de las teclas Num Lock,Caps Lock y Scroll Lock. Los bit que activan y desactivan los leds son los siguientes: 0:Scroll Lock 1:Num Lock 2:Caps Lock La operatoria seria modificar el valor de este byte y luego llamar a la interrupcion &H16 con el registro ax=256. |
Respuesta: | JRC |
La única forma que se me ocurre (y no te garantizo que funcione) es escribir en los puertos que controlan el estado del teclado por medio de la instrucción de ensamblador OUT. Estos puertos son el 417h y el 418h. Con una máscara que fuerce los bits 6,5 y 4 a 1 (encendido), quizá se enciendan los LEDS. Prueba a escribir en ambos puertos. |
Respuesta: | Gregorio Cobá Gala |
En el area de datos del BIOS de la PC existe un área de memoria que contiene los status de los leds del teclado, sólo tienes que leerlos, determinar cuales están activos y los que deseas activar. Si quieres más información envíame un e-mail detallando tu problema para ayudarte mas. Con mucho gusto deseo ampliar mi respuesta para todos los usuarios que lo necesiten. Como mencioné en el correo anterior: El BIOS tiene un área de datos que utiliza para el control del hardware de la pc que a continuación te desglozo: Seg:offset - Descripción Como podrás observar, te estoy señalando 3 direcciones que corresponden a los controles del teclado. Las dos primeras corresponden a las teclas que se están pulsando (shift, ctrl, alt, etc). y la última corresponde a los leds del teclado. Esta última dirección es un byte que en el que segun el estado de cada bit (0 ó 1) es el led del teclado que está encendido. Si cambias el estado de ese bit, también cambia el estado del led. En ensamblador puedes hacer lo siguiente: PUSH ES Con AND y OR lees y cambias el estado de los leds y para terminar restauras el valor del registro ES POP ES |