proyectos ejemplos php mysqli binary-tree binary-search-tree

php - ejemplos - consulta de la base de datos de mapas binarios



django (4)

Obtenga todos los datos de su base de datos en forma de relación Padre-Hijo y luego almacene el conjunto de resultados en Árbol binario

Parent Child ===================== NULL 17265 17265 17270 17265 17394 17270 17796 17270 17797 ... ... ... ...

Ahora usando esto se hace fácil trazar su árbol binario (de hecho cualquier árbol)
Entonces su prototipo de función para agregar nodos se verá algo como esto

public void add(int parent, int child);

NOTA:
El prototipo del método es de lenguaje Java.

Tengo que desarrollar una cadena de usuarios como se muestra en la figura. En el nivel cero tiene un miembro, el nivel uno dos, el nivel dos tendrá 4, el nivel 3 tiene 8 miembros ... igual que el 9º nivel tendrá 512 miembros y es la etapa final.

En la vista programática, interrelacionar la posición de un miembro con su ala derecha e izquierda a un nivel de x , ejecutar 2^x consultas es patético. (para el noveno nivel, 2 ^ 9 consultas llegarán a db)

¿Hay alguna otra forma de reducir el número de visitas a db? ¿Cómo podemos mapear mejor la relación entre los miembros?



construir una tabla de árbol y tabla de zona. La tabla de árbol contendrá padre, hijo, lado como columnas. La tabla de zonas contiene el ID de usuario, la zona (en la que se deben mostrar todas las zonas, 9 en este caso) y la longitud (la longitud desde el nodo superior más superior) como columnas. entonces en la tabla de zona, el nodo de primer nivel tendrá una entrada, el nodo de la segunda fila obtendrá dos entradas, de manera similar, el noveno tendrá nueve entradas.

Ahora, cuando se tiene que mostrar un nodo, para recuperar todos sus nodos inferiores, escriba una consulta como select * from zone where userid=xx ahora mapee este resultado con la tabla de árbol para decidir qué nodo depende de qué nodo y de qué lado.


en una base de datos relacional crearía una sola tabla como

create table node( nodeid bigint not null primary key, nodeparent bigint references node ( nodeid ), nodegroup bigint, nodename varchar( 80 ), // add attributes as needed );

Haga una consulta como "SELECT * FROM node WHERE nodegroup = 17 ORDER BY nodeid" para obtener todos los nodos en un conjunto de resultados. Escanee a través del conjunto y cree el árbol en la memoria.

Hajo