Exercícios Pilha Exercícios Pilha seqüencial 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) Faça um programa que gere 20 dados aleatórios com valores entre 1 e 6, armazenando estes dados em 2 pilhas (10 valores em cada pilha). Após criadas as 2 pilhas de dados, mostre na tela o seu conteúdo e em seguida inicie o jogo: leia os dados da pilha, retirando um dado do topo de cada pilha, e verificando se o usuário conseguiu obter um “duplo seis”. Se nas 10 jogadas o usuário não 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-aleatório entre 1 e 6 use as funções random( ) ou rand( ) que estão no cabeçalho stdlib.h. Exercícios Pilha dinâmica (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 palíndromo (isto é, tem a mesma leitura no sentido normal e no sentido inverso). O programa deve ignorar espaços em branco, pontuação e caracteres especiais. 6) Um bom exemplo de aplicação de pilha é o funcionamento das calculadoras da HP (Hewlett-Packard). Elas trabalham com expressões pós-fixadas, então para avaliarmos uma expressão 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