Perché gli alberi crescono verso il basso?

16

Perché gli alberi crescono verso il basso in informatica?

Ho la sensazione che torni a una stampante e che un programma che attraversa un albero dapprima stampi la radice e utilizza la nozione di una pila senza fondo di carta per esprimere i livelli indefiniti di ricorsione che potrebbero verificarsi.

References:

Trees grow downward, having their roots at the top of the page and their leaves down below

Da ON THE HOLY WARS AND A PLEA FOR PEACE .

by convention, trees are drawn growing downwards

Dall'articolo Wikipedia sulle strutture dei dati dell'albero.

Real trees grow from their root upwards to the sky, but computer-science trees grow from the root downwards

Da note per le lezioni di David Schmidt

.

    
posta maxpolk 16.05.2012 - 22:11
fonte

3 risposte

13

Solo un'ipotesi:

Le strutture ad albero crescono verso il basso (radice in alto, foglie in basso) perché le persone leggono dalla parte superiore della pagina verso il basso. Inoltre, se dovessi disegnare un grande albero che occupa diverse pagine, sarebbe imbarazzante chiedere al lettore di saltare alcune pagine e poi tornare indietro.

Inoltre, se la convenzione è iniziata per la ragione spiegata sopra o per qualche altra ragione, continuiamo la pratica oggi esattamente perché è una convenzione. Abbiamo termini corrispondenti come nodo di primo livello (che significa la radice) che non avrebbe senso se disegnassimo la struttura con la radice in basso.

    
risposta data 16.05.2012 - 22:14
fonte
16

La convenzione sembra derivare dal Algoritmo di Coffman-Graham che è stato progettato:

"...for arranging the elements of a partially ordered set into a sequence of levels. The algorithm chooses an arrangement such that an element that comes after another in the order is assigned to a lower level, and such that each level has a number of elements that does not exceed a fixed width bound W."

Il loro articolo del 1972 ( PDF ) mostra un grafico aciclico diretto disegnato dall'alto verso il basso . È un passo corto per rappresentare un albero nello stesso modo.

Vi sono ulteriori commenti su questa visualizzazione in questo articolo su Disegno a più livelli .

    
risposta data 16.05.2012 - 22:57
fonte
1

Il disegno da top > down e left > right è popolare in informatica perché quelle sono le direzioni iniziali in inglese scritto. Considerando che la maggior parte dei documenti informatici sono scritti in inglese indipendentemente dalla lingua madre dello scrittore, questo sarebbe il modo più diffuso per disegnare diagrammi.

È molto naturale per un lettore di lingua inglese leggere un grafico da top > down o left > right rispetto a una delle altre alternative.

Effettua una ricerca di images.google.com per directed tree graph e controlla i risultati. Gli unici diagrammi ad albero che ho trovato che erano su erano diagrammi di classi UML, e solo perché questa è la convenzione che UML ha scelto per Class Diagrams. Tutti gli altri diagrammi UML vanno a left > right o up > down .

Prenderò in considerazione la lettura di grafici ad albero guidati da down > up come non naturali come la lettura dei thread di posta elettronica pubblicati più in alto; che dire è completamente non naturale.

    
risposta data 17.05.2012 - 18:41
fonte

Leggi altre domande sui tag