Você está na página 1de 2

Exerccios Pilha Exerccios Pilha seqencial 1) Duas pilhas se encontram alocadas em dois vetores P1[5] e P2[5], ambas ordenadas

crescentemente da Base para o Topo. Colocar todos os elementos dessas pilhas em um terceira pilha alocada no vetor P3[10], inicialmente vazia, de modo que esta fique os 5 primeiros elementos com os valores de P1 e do sexto em diante com os elemento de P2, ir desempilhando P1 e P2. 2) Escrever um procedimento que recebe duas pilhas P1 e P2 e cria uma pilha P3 contendo, alternadamente, um elemento de P1, um elemento de P2, nesta ordem, liberando os nodos das pilhas P1 e P2. 3) Faa um programa que gere 20 dados aleatrios com valores entre 1 e 6, armazenando estes dados em 2 pilhas (10 valores em cada pilha). Aps criadas as 2 pilhas de dados, mostre na tela o seu contedo e em seguida inicie o jogo: leia os dados da pilha, retirando um dado do topo de cada pilha, e verificando se o usurio conseguiu obter um duplo seis. Se nas 10 jogadas o usurio no obteve nenhum duplo seis, voc deve exibir na tela a mensagem Perdeu!, e caso uma das 10 jogadas contenha um duplo seis, voc deve exibir na tela a mensagem Ganhou!. Obs: para gerar um valor pseudo-aleatrio entre 1 e 6 use o comando Valor := rand(6)+1; Exerccios Pilha dinmica (ponteiros) 4) Escreva um programa que receba uma linha de texto e use uma pilha para exibir a linha invertida. 5) Escreva um programa que use uma pilha para determinar se uma string um palndromo (isto , tem a mesma leitura no sentido normal e no sentido inverso). O programa deve ignorar espaos em branco, pontuao e caracteres especiais. 6) Um bom exemplo de aplicao de pilha o funcionamento das calculadoras da HP (Hewlett-Packard). Elas trabalham com expresses ps-fixadas, ento para avaliarmos uma expresso como (1-2)*(4+5) podemos digitar 1 2 4 5 + *. O funcionamento dessas calculadoras muito simples. Cada operando empilhado numa pilha de valores. Quando se encontra um operador, desempilha-se o nmero apropriado de operandos (dois para operadores binrios e um para operadores unrios), realiza-se a operao devida e empilha-se o resultado. Deste modo, na expresso acima, so empilhados os valores 1 e 2. Quando aparece o operador -, 1 e 2 so desempilhados e o resultado da operao, no caso -1 (= 1 - 2), colocado no topo da pilha. A seguir, 4 e 5 so empilhados. O operador seguinte, +, desempilha o 4 e o 5 e empilha o resultado da soma, 9. Nesta hora, esto na pilha os dois resultados parciais, -1 na base e 9 no topo. O operador *, ento, desempilha os dois e coloca -9 (= -1 * 9) no topo da pilha. Implemente a calculadora HP utilizando pilha.

Notao para expresses aritmticas infixa = operador entre os operandos (1-2)*(4+5) ps-fixa = operador aps operandos 1 2 4 5 + * pr-fixa = operador antes dos operandos * - 1 2 + 4 5 Exemplo:

Você também pode gostar