Considerando a função "func" a seguir:
01. void func(struct Pilha* p) {
02. assert(p != NULL);
03. struct Pilha* aux = criar();
04. int x = 0;
05.
...
Considerando a função "func" a seguir: 01. void func(struct Pilha* p) { 02. assert(p != NULL); 03. struct Pilha* aux = criar(); 04. int x = 0; 05. 06. while(vazia(p) == false) { 07. empilhar(aux, desempilhar(p)); 08. } 09. while(vazia(aux) == false) { 10. int elemento = desempilhar(aux); 11. x += elemento; 12. empilhar(p, elemento); 13. } 14. 15. empilhar(p, x); 16. liberar(aux); 17. } A função "func" é responsável por somar todos os elementos contidos em uma pilha e, posteriormente, empilhar o resultado nesta pilha. Contudo, para que isso seja feito sem alterar a ordem dos elementos da pilha "p", inicialmente os elementos devem ser inseridos em uma pilha auxiliar "aux" (linhas 6 a 8). Logo após, os elementos são removidos da pilha "aux" e devolvidos para a pilha "p" (linhas 9 a 13). Durante esse processo, os elementos da pilha são somados e o valor da soma é armazenado na variável "x" (linha 11). Por fim, o valor de "x" é empilhado na pilha "p" (linha 15). Dessa forma, o topo sempre conterá a soma de todos os elementos da pilha. Considerando a pilha "p" a seguir, o resultado a ser colocado no topo será 9. Pilha "p": 4 <- topo 3 0 1 1
A alternativa correta é a letra b) 9. A função "func" soma todos os elementos da pilha "p" e armazena o resultado na variável "x". Em seguida, o valor de "x" é empilhado novamente na pilha "p". Portanto, o topo da pilha "p" será igual a 9.
0
0
Faça como milhares de estudantes: teste grátis o Passei Direto
Compartilhar