FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Una manera de hacer una estructura de árbol simple y veloz!
Hace poco implemente en Rust una forma de hacer un "Tree" inspirado por APL.
Esta "limitada" a un árbol creado en pre-order, pero utiliza esto como ventaja para simplificar ENORMEMENTE la implementación y hacer su desempeño muy rápido. Hice un articulo al respecto en https://www.elmalabarista.com/blog/2022-flat-tree/, pero quiero compartir el núcleo de la idea aquí, ya que se puede implementar en Delphi/pascal sin problemas. El truco es que no se usa pointers ni listas enlazadas, solo 3 vectors: Código PHP:
Código:
. Users ├── jhon_doe ├ ├── file1.rs ├ ├── file2.rs ├── jane_doe └────── cat.jpg Código:
| DATA: | Users | jhon_doe | file1.rs | file2.rs | jane_doe | cat.jpg | |---------|-------|----------|----------|----------|----------|---------| | NIVEL: | 0 | 1 | 2 | 2 | 1 | 2 | | PADRE: | 0 | 0 | 1 | 1 | 0 | 4 | "Caminar" los hijos, padres & hermanos es muy sencillo, al hacer esta observación de como están los datos: Código:
. Users ⇡ padres siempre arriba del node ├── jhon_doe = Index: 1, Nivel: 1 ⇩ hijos arrancan desde jhon_doe + 1, nivel debe ser > al de jhon_doe ├ ├── file1.rs ?: Nivel 2 es hijo! ├ ├── file2.rs ?: Nivel 2es hijo! ├── jane_doe ?: Nivel 1 es inferior, detente! └────── cat.jpg Código:
# 47.370 nodos, 10 niveles de profundidad, recorriendo hijos en la mitad del árbol: #Competencia Iter Tree children/Ego/4 #5 time: [174.10 us 176.36 us 178.90 us] thrpt: [558.98 Kelem/s 567.01 Kelem/s 574.37 Kelem/s] #Usando la idea Iter Tree children/Flat/4 #5 time: [32.950 us 33.451 us 33.962 us] thrpt: [2.9445 Melem/s 2.9894 Melem/s 3.0349 Melem/s] MacBook Air (M1, 2020) : 16GB
__________________
El malabarista. Última edición por mamcx fecha: 02-03-2022 a las 19:22:30. |
#2
|
||||
|
||||
Muchas gracias por el aporte. Un gran trabajo
Saludos |
#3
|
||||
|
||||
Interesante.
Gracias por compartirlo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
Muchas gracias
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Arbol de estructura de base de datos | elrayo76 | Varios | 1 | 02-09-2014 20:53:26 |
Tabla cíclica ó estructura de arbol... | Xianto | MS SQL Server | 3 | 11-09-2008 12:37:18 |
Consulta SQL para estructura en arbol | PatrickM | SQL | 10 | 16-04-2007 22:48:36 |
La mejor manera de hacer reportes con Qreport | Coco_jac | Impresión | 6 | 29-04-2006 12:49:09 |
Ejercicio:hacer El Árbol GenealÓgico De Esta Familia | FunBit | Humor | 0 | 01-12-2005 18:49:51 |
|