Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

286
Vistas
Implementación del método de selección del árbol de búsqueda binaria

Actualmente estoy revisando el libro Algorithms de Robert Sedgewick . En el libro, intento comprender la implementación del método de select en un árbol de búsqueda binaria. El autor usa un BST para implementar una tabla de símbolos. El autor describe el método de select de la siguiente manera:

Supongamos que buscamos la clave de rango k (la clave tal que precisamente k otras claves en el BST son más pequeñas). Si el número de claves t en el subárbol izquierdo es mayor que k, buscamos (recursivamente) la clave de rango k en el subárbol izquierdo; si t es igual a k, devolvemos la clave a la raíz; y si t es menor que k, buscamos (recursivamente) la clave de rango k - t - 1 en el subárbol derecho. Como de costumbre, esta descripción sirve como base para el método recursivo select() en la página opuesta y para una prueba por inducción de que funciona como se esperaba.

Quiero entender específicamente cuál es el propósito del paso k - t - 1 al método de selección recursivo cuando el tamaño del nodo izquierdo es menor que el número de claves más pequeñas que k .

 public Key select(int k) { return select(root, k).key; } private Node select(Node x, int k) { // Return Node containing key of rank k. if (x == null) return null; int t = size(x.left); if (t > k) return select(x.left, k); else if (t < k) return select(x.right, kt-1); else return x; }

Como puede ver, la implementación anterior del método de select de un árbol de búsqueda binario. Cuando el condicional t < k , el autor pasa kt-1 a la llamada al método de select recursiva, pero todavía no puedo entender por qué.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

k − t − 1 es igual a k − (t + 1). Cuando t < k y recursimos al subárbol derecho, los elementos t en el subárbol izquierdo y la raíz 1 cuentan para el rango de los elementos en el subárbol derecho, por lo que debemos ajustar k para que coincida.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda