2010-10-12 9 views

Respuesta

7

La clase SortedDictionary<K,V> usa un árbol, ¿eso es lo que buscas?

Consulte este SO answer para una discusión.

2

Otra opción es utilizar una lista y ordenarla. Luego puede usar el método BinarySearch para buscar elementos. Para mantener la lista ordenada, puede usar el índice devuelto por BinarySearch para insertar en. Si el índice devuelto es negativo, use el complemento (~ operador) como su ubicación de inserción, si el índice devuelto es positivo, puede insertarlo en esa ubicación (a menos que desee establecer un comportamiento similar, en cuyo caso no insertarlo).

+1

Esto proporciona la misma semántica de búsqueda, pero la estructura subyacente sigue siendo una lista antigua simple, no una BST. –

+0

Buena llamada, no lo pensé cuando publiqué eso (solo 1 taza de café en ese momento). Utilizo la Lista con BinarySearch y el complemento Insertar índice para obtener la semántica de búsqueda BST. Debería leer más cuidadosamente :) – pstrjds

2

C5 library:

Clase TreeDictionary implementa ISortedDictionary interfaz y representa un diccionario de (clave, valor) pares, o entradas, utilizando un árbol ordenado equilibrada redblack binario. El acceso de entrada, la eliminación de entrada y la inserción de entrada toman tiempo O (logn). La enumeración de las claves, valores o entradas de un árbol de diccionarios sigue el orden de las teclas, según lo determine el comparador de claves.

Cuestiones relacionadas