Isso pode ser muito ingênuo, mas eu estava pensando, é o contexto de árvores binárias (planas, ordenadas e equilibradas), de todos os tipos transversais:
- pré-encomenda em profundidade
- profundidade primeiro em ordem
- primeira ordem de profundidade
- largura primeiro
qual é a utilidade real dos pré e pós-pedido? Quero dizer, existe algum tipo e / ou configuração de árvore binária na qual a travessia pré e / ou pós-ordem daria uma (algumas) vantagem (s) sobre as outras duas?
AFAICS, existem certos tipos e configurações de árvores binárias para as quais a ordem e a largura da primeira podem oferecer uma certa vantagem:
para uma árvore binária balanceada, qualquer percurso em profundidade utilizará menos espaço de armazenamento de memória em comparação com a largura primeiro (por exemplo, para árvore binária balanceada de 6 ou 7 nós, a altura é 2; portanto, qualquer percurso em profundidade precisará armazenar no máximo 2 nós a qualquer momento, enquanto o último nível tiver 3 ou 4 nós; portanto, a travessia em largura primeiro precisará armazenar até 3 ou 4 nós em algum momento). Nesse caso, o uso da travessia em ordem usa a menor quantidade de memória e visita os nós em sua ordem natural.
para uma árvore binária não balanceada, se estiver próximo do pior cenário de inserção, percorrê-la em largura primeiro usaria menos memória em comparação com qualquer uma das travessias em profundidade. Portanto, neste caso, a amplitude oferece uma vantagem. A travessia em ordem tem novamente a vantagem de visitar valores em sua ordem natural.
No entanto, não consigo pensar em uma situação em que pré e pós-travessia dariam vantagem sobre os outros dois.
A + B * C
, que é muito mais fácil de entender para usuários normais do que qualquer prefixo da ordem do postfix.