-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy path1195.poti
49 lines (42 loc) · 1.17 KB
/
1195.poti
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
tipo Valor = Inteiro
tipo abstrato No
valor(): Valor
esquerda(): No
direita(): No
inserir(v: Valor): No
infixa(): Lista[Valor]
prefixa(): Lista[Valor]
posfixa(): Lista[Valor]
fim
max(a, b: Inteiro) = se a >= b então a senão b fim
tipo Arvore: No
valor: Valor
esquerda, direita: No
inserir(v: Valor): No =
se v < valor então
Arvore(valor, esquerda.inserir(v), direita)
senão
Arvore(valor, esquerda, direita.inserir(v))
fim
infixa() = esquerda.infixa + valor :: direita.infixa
prefixa() = valor :: esquerda.prefixa + direita.prefixa
posfixa() = esquerda.posfixa + direita.posfixa + [valor]
fim
tipo Folha: No
valor = 0
esquerda, direita = isto
inserir(v: Valor): No = Arvore(v, Folha(), Folha())
infixa, prefixa, posfixa: Lista[Valor] = []
fim
folha: No = Folha()
c = leia_inteiro
para i de 1 até c faça
leia_texto
numeros = leia_inteiros(" ")
arvore = numeros.injete(folha)((a, b) => a.inserir(b))
escreva "Case {i}:"
escreva "Pre.: {arvore.prefixa.junte(" ")}"
escreva "In..: {arvore.infixa.junte(" ")}"
escreva "Post: {arvore.posfixa.junte(" ")}"
escreva ""
fim