Treap

Abbozzo
Questa voce sull'argomento programmazione è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Wikipedia.

In informatica, il treap è un particolare tipo di albero bilanciato che mette insieme le tipiche caratteristiche di un albero binario di ricerca e quelle di un heap. Ogni nodo dell'albero ha un valore, v a l ( x ) {\displaystyle val(x)} come ogni altro nodo di un ABR. Oltre al valore, è aggiunto un campo priorità, p r i o r i t y ( x ) {\displaystyle priority(x)} che è un numero casuale scelto in modo indipendente per ogni nodo.

Definizione

Un treap è un albero T {\displaystyle T} avente le seguenti proprietà. Ogni nodo x T {\displaystyle x\in T} ha un valore v a l ( x ) {\displaystyle val(x)} e un valore p r i o r i t y ( x ) {\displaystyle priority(x)} . Inoltre:

  1. x , v T {\displaystyle \forall \;x,v\in T} , se v {\displaystyle v} è un figlio sinistro di x {\displaystyle x} , allora v a l ( x ) > v a l ( v ) {\displaystyle val(x)>val(v)}
  2. x , v T {\displaystyle \forall \;x,v\in T} , se v {\displaystyle v} è un figlio destro di x {\displaystyle x} , allora v a l ( x ) < v a l ( v ) {\displaystyle val(x)<val(v)}
  3. x , v T {\displaystyle \forall \;x,v\in T} , se v {\displaystyle v} è un figlio di x {\displaystyle x} , allora p r i o r i t y ( x ) > p r i o r i t y ( v ) {\displaystyle priority(x)>priority(v)} se sono utilizzate, per la priorità, le proprietà di ordinamento dell'heap decrescente, altrimenti, p r i o r i t y ( x ) < p r i o r i t y ( v ) {\displaystyle priority(x)<priority(v)} se sono utilizzate le proprietà dell'heap crescente

Altri progetti

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su treap
  Portale Informatica
  Portale Matematica