Che cos'è una cerniera e come si collega a una struttura ad albero?


15

Stavo leggendo un capitolo di LYAH che non aveva davvero senso per me. Capisco che le cerniere lampo possono attraversare arbitrariamente una struttura ad albero, ma ho bisogno di alcuni chiarimenti su di essa. Inoltre, le cerniere possono essere generalizzate a qualsiasi struttura di dati?


3
Ciò è probabilmente più appropriato per l' Informatica , sebbene il lavoro di generalizzazione delle cerniere lampo coinvolga alcuni macchinari tecnici.
Dave Clarke,

6
Una cerniera è qualcosa che dovresti sempre tenere chiuso, specialmente quando attraversi un albero.
Andrej Bauer,

Risposte:


14

Una cerniera, in generale, è una struttura di dati con un buco al suo interno. Le cerniere vengono utilizzate per attraversare / manipolare strutture di dati e il foro corrisponde all'attuale focus del movimento trasversale. In genere c'è anche un elemento della struttura dei dati in esame, in modo che uno abbia una (lista) cerniera e un elenco o una (albero) cerniera e un albero. La cerniera consente al programmatore di spostarsi in modo efficiente attorno alla struttura dei dati, sostituendo anche l'elemento nel focus. La coppia della cerniera e l'elemento nel focus soddisfano il vincolo che posizionando l'elemento nel focus nel foro si dà la struttura dati originale.

Le cerniere possono essere generalizzate a tipi di dati induttivi arbitrari. Il concetto può essere definito in modo indicizzato (vedi tipi di dati indicizzati per tipo ). Sono inoltre correlati all'idea della derivata di una struttura di dati ed è stato studiato da una prospettiva teorica di categoria .


2

Una cerniera è in genere un paio di cose: è una struttura con un buco, un focus , che rappresenta dove sei nella struttura, insieme a un percorso , che registra come sei arrivato a quel focus. (Questo percorso è la scia di pangrattato di LYAH.)

Il percorso è come applicare effettivamente le modifiche alla struttura: "vai giù, vai a sinistra, incrementa il valore". Applicando ripetutamente "vai su" ( go_upnel documento di Huet ) a questo punto, puoi ripercorrere i tuoi passi e finire con una nuova copia mutata della struttura originale.

Possono infatti essere generalizzati ad altre strutture:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.