Por que as árvores crescem para baixo na ciência da computação?
Tenho a sensação de que remonta a uma impressora e que um programa que atravessa uma árvore imprime primeiro a raiz e usa a noção de uma pilha de papel sem fundo para expressar os níveis indefinidos de recursão que podem ser encontrados.
Referências:
As árvores crescem para baixo, com raízes no topo da página e folhas abaixo
Das guerras sagradas e uma paz pela paz .
por convenção, as árvores são desenhadas crescendo para baixo
Do artigo da Wikipedia sobre estruturas de dados em árvore.
Árvores reais crescem da raiz para o céu, mas as árvores da ciência da computação crescem da raiz para baixo
computer-science
conventions
maxpolk
fonte
fonte
Respostas:
Apenas um palpite:
As estruturas das árvores crescem para baixo (raiz na parte superior, folhas na parte inferior) porque as pessoas leem da parte superior da página para a parte inferior. Além disso, se você desenhasse uma árvore grande com várias páginas, seria estranho pedir ao leitor para pular algumas páginas e depois retroceder.
Além disso, se a convenção começou pelo motivo explicado acima ou por algum outro motivo, continuamos a prática hoje exatamente porque é uma convenção. Temos termos correspondentes, como nó de nível superior (ou seja, a raiz) que não faria tanto sentido se desenharmos a estrutura com a raiz na parte inferior.
fonte
A convenção parece ter origem no algoritmo Coffman-Graham, que é projetado:
O artigo de 1972 ( PDF ) mostra um gráfico acíclico direcionado sendo desenhado de cima para baixo. É um pequeno passo para representar uma árvore da mesma maneira.
Há mais comentários sobre essa visualização neste artigo sobre Desenho de gráfico em camadas .
fonte
Desenho do
top > down
eleft > right
é popular na ciência da computação, porque essas são as instruções de partida em inglês escrito. Considerando que a maioria dos trabalhos de ciência da computação são escritos em inglês, independentemente do idioma nativo do escritor, essa seria a maneira mais prevalente de desenhar diagramas.É mais natural para um leitor de inglês ler um gráfico a partir de
top > down
ouleft > right
de qualquer uma das outras alternativas.Faça uma pesquisa em images.google.com
directed tree graph
e analise os resultados. As únicas diagramas de árvore que eu poderia encontrar que iam se foram UML diagramas de classe, e só porque essa é a convenção que UML escolheu para diagramas de classe. Todos os outros diagramas UML vãoleft > right
ouup > down
.Eu consideraria a leitura de gráficos de árvore direcionada
down > up
tão natural quanto a leitura dos principais tópicos de email; o que dizer é completamente antinatural.fonte