Академический Документы
Профессиональный Документы
Культура Документы
Na rvore (3), a determinao do percurso em pr-ordem foi esquematizada ao lado. preciso decompor as sub-rvores A1, A2 e B2 em pr-ordem. O resultado final A B D E F G H C I. Note que para obter a listagem de uma rvore em pr-ordem basta escrever a sua expresso LISP e retirar os parnteses e as vrgulas. O percurso em ps-ordem ou ps-fixado definido da seguinte maneira: Primeiro visitamos todas as sub-rvores da raiz da esquerda para a direita em psordem; por ltimo a raiz visitada. Assim, a rvore (1) listada em pr-ordem B C A e a rvore (2) D E B C A. O esquema abaixo ilustra a listagem da rvore 3 em ps-ordem:
Podemos notar que a raiz sempre o primeiro elemento no percurso em pr-ordem e o ltimo no percirso em ps-ordem. Apenas para rvores binrias, definimos tambm o percurso em-ordem, ou central da seguinte maneira: Percorremos primeiro a sub-rvore esquerda (se houver) em-ordem; depois visitamos a raiz; e por ltimo a percorremos a sub-rvore direita (se houver) em-ordem. As rvores (1) e (2) acima so binrias. Aplicando o percurso em-ordem arvore (1), obtemos B A C. J a rvore (2) percorrida em-ordem D B E A C. O exemplo mais complexo da rvore (4) abaixo esquematizado ao lado:
Note que a rvore B1 no tem sub-rvore esquerda. Assim, sua listagem em-ordem a raiz D seguida da sub-rvore direita E. Da mesma forma, A2 no tem sub-rvore direita, logo sua listagem em-ordem a subrvore esquerda F seguida da raiz C. Em geral, impossvel reconstruir uma rvore pelas suas listagens em pr-ordem, ps-ordem ou em-ordem. Este fato ilustrado pelas duas arvores ao lado: ambas tm a mesma listagem em pr-ordem A B C.
Algoritmos recursivos em rvores Um outro exemplo simples o clculo da profundidade: Se a rvore composta apenas da raiz, a sua profundidade 0. Caso contrrio, a profundidade 1 mais o mximo das profundidades de cada uma das sub-rvores da raiz.
Claramente, se a rvore composta apenas da raiz, seu nvel mximo 0 e, portanto, sua profundidade 0. Caso contrrio, a sua profundidade ser definida pela sub-rvore mais profunda. Observando a rvore (3) acima, vemos que a profundidade definida pela sub-rvore A1, pois ela mais profunda que a sub-rvore A2.
4. Exerccios
1. Para cada uma das rvores da figura abaixo, faa o percurso em pr-ordem, ps-ordem e emordem
2. Uma rvore cheia tem listagem em pr-ordem A B C D E F G. Desenhe esta rvore. Repita o exerccio considerando que a listagem foi dada em ps-ordem e em-ordem. 3. Modifique o algoritmo de listagem em-ordem de rvores aritmticas para que sejam inseridos parnteses. O algoritmo no deve inserir parnteses em torno dos nmeros. Por exemplo, no deve escrever (a) * ((b) + (c)), mas somente a * (b + c). 4. Descreva os algoritmos recursivos cara calcular a ordem (ou grau) e o nmero de ns terminais (ou folhas) de uma rvore. 5. Descreva o algoritmo recursivo para calcular o valor da expresso aritmtica contida em uma rvore.