O que é "classificação" em uma árvore de pesquisa binária e como pode ser útil?

8

Estou com problemas para entender o que é uma árvore de pesquisa binária classificada e por que é importante ter uma classificação. Espero que alguém possa esclarecer algumas coisas para mim.

O que eu analisei:
Pelo que li, uma árvore de pesquisa binária classificada é uma árvore em que cada nó tem uma "classificação" variável anexada a ela.

Na pergunta aqui , alguém afirma que, para determinar a classificação de um nó em uma árvore de pesquisa binária, você pode fazer o seguinte:

Comece a classificação em zero. À medida que a pesquisa binária prossegue para baixo da raiz, some os tamanhos de todas as subárvores esquerdas pelas quais a pesquisa ignora. Inclua também os nós ao longo do caminho menos que o item pesquisado. Estes são apenas os pais dos filhos certos no caminho da pesquisa.

Perguntas:
A classificação parece ser apenas um número que reflete quantos nós são necessários (mais um para a raiz) para chegar a um nó específico em uma árvore. Isso está certo? Isso não me pareceu correto, porque isso parece tornar a classificação de um nó a mesma que a profundidade de um nó.

Além disso, qual é a diferença entre "peso" e "classificação"? Se um nó em uma árvore de pesquisa binária específica tem um peso associado a ele, isso é apenas um valor aleatório atribuído a ele pelo usuário / desenvolvedor?

Por fim, qual é o sentido de ter uma classificação? Meu primeiro pensamento é que ele pode ser usado para indicar prioridades. No entanto, nesse caso, por que o desenvolvedor não usaria pesos?

Outras coisas:
também dei uma olhada no site aqui . Explica como calcular a classificação, mas ainda não estou convencido de que entendi o conceito ainda.

Obrigado por qualquer ajuda.

JustBlossom
fonte

Respostas:

11

De acordo com este livro (capítulo 3.2), um nó em um BST tem classificaçãok se precisamente koutras teclas no BST são menores. Portanto, se você solicitar todos os nós BST de acordo com suas chaves, cada nó com classificaçãok vou levar klugar.

HEKTO
fonte
1

Eu acho que depende se você está fazendo uma união de classificação por tamanho ou altura. A classificação de um nó usando a união de classificação por tamanho pode indicar quantos nós estão na subárvore desse nó. A classificação de um nó usando a união de classificação por altura indicaria quantas arestas estão no caminho desse nó até a folha mais distante na subárvore desse nó.

Helenie Grey
fonte
0

Adicionando à resposta de HEKTO acima, para calcular a classificação em um BST com elementos exclusivos,

a classificação de um filho esquerdo = classificação do pai - 1 - número de elementos em sua subárvore direita

e,

a classificação de um filho direito = classificação do pai + 1 + número de elementos em sua subárvore esquerda.

Pode ser usado para encontrar qualquer Euthordem estatística no BST no tempo O (h), ou seja, tempo O (log n) se a árvore estiver equilibrada. Portanto, é útil encontrar a mediana dos elementos ou o i / maior / menor elemento entre os elementos.

shashank.b
fonte