![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Sigo sin pillarlo.
Lo peor de todo es que la implementación típica del algoritmo de compresión LZSS (que usan un montón de programas, como LHA y Allegro) usa este sistema para indexar el buffer donde busca las coincidencias, pero por más que lo leo (en Allegro 1-4 está bastante claro) sigo sin entender cómo funciona. |
#2
|
|||
|
|||
lo de enlaza creo que se refiere al campo "sexo"
Ejemplo de lista enlazada sin punteros explícitos usando clases: Código:
type TNode = class Data: Integer; Next: TNode; // Aquí seguimos apuntando al siguiente nodo, pero sin punteros explícitos end; TLinkedList = class private Head: TNode; public procedure AddNode(Value: Integer); procedure PrintList; procedure Clear; end; Implementación de métodos: Código:
procedure TLinkedList.AddNode(Value: Integer); var NewNode: TNode; begin // Creamos un nuevo nodo NewNode := TNode.Create; NewNode.Data := Value; NewNode.Next := Head; // El nuevo nodo apunta a la cabeza actual Head := NewNode; // La cabeza ahora es el nuevo nodo end; procedure TLinkedList.PrintList; var Current: TNode; begin Current := Head; while Current <> nil do begin WriteLn(Current.Data); // Mostramos el dato actual Current := Current.Next; // Avanzamos al siguiente nodo end; end; procedure TLinkedList.Clear; var Temp: TNode; begin while Head <> nil do begin Temp := Head; Head := Head.Next; Temp.Free; // Liberamos la memoria del nodo end; end; ejemplo de Uso: Código:
var List: TLinkedList; begin List := TLinkedList.Create; List.AddNode(10); List.AddNode(20); List.AddNode(30); List.PrintList; // Muestra 30, 20, 10 List.Clear; // Limpia la lista y libera memoria List.Free; // Libera la instancia de la lista end. Última edición por navbuoy fecha: 05-10-2024 a las 11:40:00. |
#3
|
||||
|
||||
navbuoy: Aunque no sea un puntero explícito, sigue siendo un puntero. Todas las referencias a instancias de clases Delphi lo son. :-)
Ñuño: ¿en qué fase de comprensión vas? Yo no entendí nada todavía pero ¿cuál es tu duda medular? ¿Puedes reducirla a su mínima expresión? Tal vez me anime a echarle un vistazo con calma en estos días. Edito: Bueno, agregaría que al parecer el registro contiene un campo que indica su posición en una matriz unidireccional (vulgarmente conocida como "arreglo"), y eso, un índice por elemento (persona), es suficiente para que pueda conocerse, a partir de un registro, cuál es el siguiente o el anterior registro de la matriz. Diría que tiene la ventaja de que con un solo campo de tipo Integer puedes "enlazar" al registro predecesor y al registro sucesor, cosa que en otros escenarios vemos resuelto con el uso de dos campos punteros en cada record (necesitando más memoria). Un confuso abrazo. ![]() Al González. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
punteros | pepe_baile | C++ Builder | 4 | 24-07-2016 11:19:57 |
Punteros | kotai | Varios | 1 | 09-08-2010 16:26:34 |
uso de punteros | David | OOP | 19 | 14-12-2009 09:48:37 |
C++ y los punteros | marcoszorrilla | La Taberna | 3 | 02-06-2008 18:31:11 |
Punteros | davitcito | Varios | 2 | 25-04-2005 22:46:24 |
![]() |
|