Material didático para conceituar e implementar pilhas usando alocação estática sequencial

MarceloDuduchi 3 views 119 slides Sep 15, 2025
Slide 1
Slide 1 of 119
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119

About This Presentation

Material didático usado para ensinar o conceito de pilhas como listas restritas e apresentar possível implementação de pilhas usando memória estática sequencial em Linguagem Pascal. O material começa conceituando listas lineares, apresenta o modelo conceitual de pilhas e uma representação g...


Slide Content

Estruturas de Dados ► Pilhas (Linguagem Pascal ) Prof. Dr. Marcelo Duduchi Aux. Docente Lucio Nunes

Estruturas de Dados Ao implementarmos programas de computador estamos de certa forma tentando representar o mundo real pela computação; Os dados a serem processados no computador representam uma abstração de parte da realidade na medida em que representam características selecionadas das entidades do mundo real; 2

Estruturas de Dados A forma segundo a qual os bits são agrupados, interpretados e manipulados pelo computador normalmente não nos interessa quando a nossa preocupação maior é resolver um problema específico; Felizmente, as linguagens atuais oferecem um conjunto básico de tipos de dados primitivos (inteiros, reais, caractere, booleano etc.) que podemos usar nas soluções de problemas; Da mesma forma, temos mecanismos que permitem criar agrupamentos complexos de dados a partir desses tipos primitivos; 3

Estruturas de Dados Para representar o mundo computacionalmente é necessário modelar; É neste particular que o conceito de tipos abstratos de dados passa a ser muito importante para a computação; Um tipo abstrato de dados é formado por: Um conjunto de valores; Uma série de funções que podem ser aplicadas a estes valores. O modelo usado para representar a solução de uma classe de problemas podemos chamar de estrutura de dados ; 4

Estruturas de Dados O estudo das estruturas de dados envolve dois objetivos básicos: Teórico: Identificar e desenvolver modelos, determinando que classes de problemas podem resolver; Prático: Criar representações concretas dos objetivos e desenvolver sub-rotinas capazes de atuar como representações. 5

Listas Lineares Uma lista é uma coleção de elementos do mesmo tipo dispostos linearmente que podem ou não seguir uma determinada organização; Exemplo: [E 1 , E 2 , E 3 , ..., E n ], onde n ≥ 0 ; Uma lista de pagamentos pode ser constituída por: prestação do carro, cartão de crédito, conta de luz, condomínio, televisão a cabo e prestação do crediário; 6

Listas Lineares Para a representação de alguns modelos do mundo real é necessário limitar o funcionamento das listas lineares; É neste contexto que surgem as listas lineares restritas. As mais utilizadas são: Pilhas e Filas. 7

Pilhas Uma lista linear onde tanto a entrada quanto a saída precisa ser feita pela mesma extremidade é conhecida como pilha; Neste caso o último elemento que entrar é o primeiro a sair ( Last In First Out ); Existem duas funções que se aplicam a todas as pilhas: PUSH : insere o item no topo da pilha; POP : remove o item d o topo da pilha. 8

Pilhas (modelo conceitual) 9 Novos elementos são armazenados no topo da pilha. PILHA A

Pilhas (modelo conceitual) Push 10 Novos elementos são armazenados no topo da pilha. PILHA A

Pilhas (modelo conceitual) 11 Novos elementos são armazenados no topo da pilha. PILHA B A

Pilhas (modelo conceitual) Push 12 Novos elementos são armazenados no topo da pilha. PILHA A B

Pilhas (modelo conceitual) 13 Novos elementos são armazenados no topo da pilha. PILHA C A B

Pilhas (modelo conceitual) Push 14 Novos elementos são armazenados no topo da pilha. PILHA A B C

Pilhas (modelo conceitual) 15 Novos elementos são armazenados no topo da pilha. PILHA D A B C

Pilhas (modelo conceitual) Push 16 Novos elementos são armazenados no topo da pilha. PILHA A B C D

Pilhas (modelo conceitual) 17 A B C D Sequência armazenada em pilha. PILHA

Pilhas (modelo conceitual) Pop 18 A B C D O último elemento que entrou será o primeiro a sair ( LIFO ). PILHA

Pilhas (modelo conceitual) Pop 19 A B C O último elemento que entrou será o primeiro a sair ( LIFO ). PILHA

Pilhas (modelo conceitual) Pop 20 A B O último elemento que entrou será o primeiro a sair ( LIFO ). PILHA

Pilhas (modelo conceitual) Pop 21 A O último elemento que entrou será o primeiro a sair ( LIFO ). PILHA

Pilhas (representação gráfica) 22 D push (pilha, ‘D’); Topo → D p op(pilha); Topo → A p ush (pilha, ‘A’); Topo → V A p ush (pilha, ‘V’); Topo → V A pop(pilha); Topo → B A push (pilha, ‘B’); Topo → D A B V D V

Pilhas (representação gráfica) 23 G B A p ush (pilha, ‘G’); Topo → H G B A p ush (pilha, ‘H’); Topo → H G B A p op(pilha); Topo → G B A p op(pilha); Topo → B A p op(pilha); Topo → A p op(pilha); Topo → H G H G B A

Pilhas (implementação) Consideremos para a nossa implementação um grupo de operações: c reate → inicializa a pilha d estroy → esvazia a pilha isfull → verifica se está cheia isempty → verifica se está vazia p ush → insere um elemento p op → retira um elemento t op → mostra o elemento do topo 24

Pilhas (definição da estrutura) 25 type TPilha = record vet : array [ 1 .. 6 ] of char ; topo : integer ; end ; TPilha vet topo 1 2 3 4 5 6

Pilhas ( c reate , d estroy , isfull e isempty ) 26 procedure create ( var p : TPilha ); begin p . topo := ; end ; procedure destroy ( var p : TPilha ); begin p . topo := ; end ; function isfull ( var p : TPilha ): boolean ; begin if p . topo = 6 then isfull := true else isfull := false ; end ; function isempty ( var p : TPilha ): boolean ; begin if p . topo = then isempty := true else isempty := false ; end ;

Pilhas ( isfull e isempty ) 27 function isfull ( var p : TPilha ): boolean ; begin isfull := p . topo = 6 ; end ; function isempty ( var p : TPilha ): boolean ; begin isempty := p . topo = ; end ; SEGUNDA VERSÃO

function pop ( var p : TPilha ): char ; var aux : char ; begin if isempty ( p ) t hen begin writeln ( ' underflow ' ); halt ; end ; aux := p . vet [ p . topo ]; p . topo := p . topo - 1 ; pop := aux ; end ; Pilhas ( p ush e p op ) 28 procedure p ush ( var p : TPilha ; x : char ); begin if isfull ( p ) t hen begin writeln ( 'overflow' ); halt ; end ; p . topo := p . topo + 1 ; p . vet [ p . topo ] := x ; end ;

Pilhas ( top ) 29 f unction top ( var p : TPilha ): char ; begin if isempty ( p ) t hen begin w riteln ( ' underflow ' ); h alt ; end ; top := p . vet [ p . topo ]; end ;

Pilhas (exemplo de utilização) 30 procedure inverte ( var s : string ); var i, tam : integer ; p : TPilha ; begin create ( p ); i := 1 ; tam := length ( s ); while not isfull ( p ) and ( i <= tam ) do begin push ( p , s [ i ]); i := i + 1 ; end ; s := '' ; while not isempty ( p ) do s := s + pop ( p ); end ; Roma amoR a m o R

Pilhas (aplicações) Pilha de chamada de rotinas: Caso seja uma chamada, colocar o endereço da próxima instrução na pilha, executando a rotina chamada; Caso seja um “retorne”, retirar um endereço da pilha, passando a executá-lo. 31

Pilhas (aplicações) INSTRUÇÃO ESTADO DA PILHA e0 e1: A( ); e0, e2 e5: B( ); e0, e2, e6 e7: Retorne; e0, e2 e6: Retorne; e0 e2: C( ); e0, e3 e8: Retorne; e0 e3: B( ); e0, e4 e7: Retorne; e0 e4: Retorne; Rotina P e1: A( ); e2: C( ); e3: B( ); e4: Retorne ; Rotina A e5: B( ); e6: Retorne ; Rotina B e7 : Retorne ; Rotina C e8 : Retorne ; 32

Pilhas (infixa -> posfixa ) 33 Infixa   Posfixa  

Pilhas (infixa -> posfixa ) 34 Infixa:   Posfixa : ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 35 Infixa:   Posfixa : ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 36 Infixa:   Posfixa : ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 37 Infixa:   Posfixa : ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 38 Infixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string Posfixa:  

Pilhas (infixa -> posfixa ) 39   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 40   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 41 Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 42   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 43   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 44   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 45   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 46   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 47   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 48 Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 49   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 50   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> posfixa ) 51   Infixa:   Posfixa:   ( : ignore 0…9 : anexe à string +, -, *, / : empilhe ) : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 52 Infixa   Prefixa  

Pilhas (infixa -> prefixa) 53 Infixa:   Prefixa: ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 54 Infixa:   Prefixa: ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 55 Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 56   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 57   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 58   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 59   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 60   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 61   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 62   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 63   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 64   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 65   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 66   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 67 Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string  

Pilhas (infixa -> prefixa) 68   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 69   Infixa :   Prefixa: +   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 70   Infixa :   Prefixa: + /   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas (infixa -> prefixa) 71   Infixa :   Prefixa:   ) : ignore 0…9 : anexe à string +, -, *, / : empilhe ( : desempilhe e anexe à string

Pilhas ( posfixa -> infixa) 72 Posfixa   Infixa  

Pilhas ( posfixa -> infixa) 73 Posfixa:   0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'   Infixa:

Pilhas ( posfixa -> infixa) 74   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 75   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 76   Posfixa:   0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 77   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 78   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 79   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 80   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 81   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 82   Posfixa:   Infixa: 0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas ( posfixa -> infixa) 83 Posfixa:   Infixa:   0…9 : empilhe +, -, *, / : recebe desempilha; e mpilhe '(' + desempilha + + + ')'  

Pilhas (prefixa -> infixa) 84 Prefixa   Infixa  

Pilhas (prefixa -> infixa) 85 Prefixa:   0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'   Infixa:

Pilhas (prefixa -> infixa) 86   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 87   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 88   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 89   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 90   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 91   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 92   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 93   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 94   Prefixa:   Infixa: 0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

Pilhas (prefixa -> infixa) 95 Prefixa:   Infixa:   0…9 : empilhe +, -, *, / : empilhe '(' + desempilha + + desempilha + ')'  

96 Avaliação de expressão POSFIXA  

Pilhas (avaliação posfixa ) 97 posfixa :   Resultado:   0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 98 posfixa :   Resultado:   3 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 99 posfixa :   Resultado:   1 3 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 100 posfixa :   Resultado:   2 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 101 posfixa :   Resultado:   2 2 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 102 posfixa :   Resultado:   4 2 2 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 103 posfixa :   Resultado:   8 2 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 104 posfixa :   Resultado:   10 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 105 posfixa :   Resultado:   5 10 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 106 posfixa :   Resultado:   2 0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

Pilhas (avaliação posfixa ) 107 posfixa :   Resultado:   0…9 : empilhe +, -, *, / : recebe desempilha; empilhe( desempilha )  

108 Avaliação de expressão PREFIXA  

Pilhas (avaliação prefixa) 109 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)  

Pilhas (avaliação prefixa) 110 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   5

Pilhas (avaliação prefixa) 111 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   4 5

Pilhas (avaliação prefixa) 112 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   2 4 5

Pilhas (avaliação prefixa) 113 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   8 5

Pilhas (avaliação prefixa) 114 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   1 8 5

Pilhas (avaliação prefixa) 115 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   3 1 8 5

Pilhas (avaliação prefixa) 116 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   2 8 5

Pilhas (avaliação prefixa) 117 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   10 5

Pilhas (avaliação prefixa) 118 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)   2

Pilhas (avaliação prefixa) 119 prefixa :   Resultado:   0…9 : empilhe +, -, *, / : empilhe(desempilha desempilha)