3)
A seguir, é apresentado o código da função "pilhaParaLista(p)", a qual recebe uma pilha "p" por parâmetro e retorna uma lista contendo todos os elementos contidos na pilha "p".
struct Lista* pilhaParaLista(struct Pilha* p) {
assert(p != NULL);
struct Pilha* aux = criar();
struct Lista* li = criar();
while(vazia(p) == false) {
empilhar(aux, desempilhar(p));
}
while(vazia(aux) == false) {
int elemento = desempilhar(aux);
empilhar(p, elemento);
inserir(li, 0, elemento);
}
liberar(aux);
return li;
}
Considerando a pilha "p" a seguir, assinale a alternativa que representa corretamente o estado da lista retornado pela função "pilhaParaLista(p)":
Pilha "p":
5 <- Topo
4
2
Alternativas:
a)
Início -> [5, 2, 4]
b)
Início -> [5, 4, 2]
c)
Início -> [4, 2, 5]
d)
Início -> [4, 5, 2]
e)
Início -> [2, 4, 5]
4)
Pilha e fila são exemplos de estruturas de dados bastante conhecidas. Em uma pilha, elementos podem ser inseridos e removidos apenas de uma extremidade da estrutura, conhecida como "topo". No caso da fila, elementos são inseridos em uma de suas extremidades (fim) e removidos da outra (início). A isso, damos o nome de protocolo da estrutura de dados.
Com base no que foi exposto, considere o seguinte problema: um usuário inseriu os números 3, 2, 4 e 5, nesta ordem, em uma estrutura de dados A, respeitando seu protocolo. Assim, a estrutura de dados A ficou preenchida da seguinte forma:
A: [5, 4, 2, 3]
Logo após, ele removeu todos os elementos da estrutura de dados A e os inseriu em uma estrutura de dados B, respeitando os protocolos de ambas as estruturas. A estrutura de dados A ficou vazia e a estrutura de dados B ficou preenchida da seguinte forma:
B: [5, 4, 2, 3]
Por fim, ele repetiu o processo, removendo os elementos da estrutura B e inserindo-os em uma estrutura de dados C. Isso vez com que a estrutura de dados B ficasse vazia e a estrutura de dados C ficasse preenchida da seguinte forma:
C: [3, 2, 4, 5]
Assinale a alternativa que representa corretamente o nome das estruturas de dados A, B e C:
Alternativas:
a)
A. Pilha / B. Fila / C. Pilha
b)
A. Pilha / B. Pilha / C. Fila
c)
A. Fila / B. Pilha / C. Fila
d)
A. Fila / B. Fila / C. Pilha
e)
A. Pilha / B. Fila / C. Fila
5)
Pilha e fila são exemplos de estruturas de dados bastante conhecidas. Em uma pilha, elementos podem ser inseridos e removidos apenas de uma extremidade da estrutura, conhecida como "topo". No caso da fila, elementos são inseridos em uma de suas extremidades (fim) e removidos da outra (início). A isso, damos o nome de protocolo da estrutura de dados.
Com base no que foi exposto, considere o seguinte problema: um usuário inseriu os números 7, 2, 5 e 3, nesta ordem, em uma estrutura de dados A, respeitando seu protocolo. Assim, a estrutura de dados A ficou preenchida da seguinte forma:
A: [7, 2, 5, 3]
Logo após, ele removeu todos os elementos da estrutura de dados A e os inseriu em uma estrutura de dados B, respeitando os protocolos de ambas as estruturas. A estrutura de dados A ficou vazia e a estrutura de dados B ficou preenchida da seguinte forma:
B: [3, 5, 2, 7]
Por fim, ele repetiu o processo, removendo os elementos da estrutura B e inserindo-os em uma estrutura de dados C. Isso vez com que a estrutura de dados B ficasse vazia e a estrutura de dados C ficasse preenchida da seguinte forma:
C: [7, 2, 5, 3]
Assinale a alternativa que representa corretamente o nome das estruturas de dados A, B e C:
Alternativas:
a)
A. Fila / B. Fila / C. Pilha
b)
A. Pilha / B. Fila / C. Pilha
c)
A. Fila / B. Pilha / C. Pilha
d)
A. Pilha / B. Pilha / C. Fila
e)
A. Fila / B. Pilha / C. Fila
Lista de comentários
Resposta:
letra c
Explicação:
vozes da minha cabeça