Buscar

Av - Subst 2 - Algoritmos e Programação Estruturada

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Av - Subst. 2 - Algoritmos e Programação 
Estruturada
1)
A estrutura de dados lista representa um conjunto dinâmico cujos elementos podem ser inseridos e
retirados de qualquer parte da estrutura. Dentre suas principais funções, estão:
inserir(li, pos, item): adiciona o elemento “item” na posição “pos” da lista “li”;
remover(li, pos): remove e retorna o elemento da posição “pos” da lista “li”; e
obter(li, pos): retorna (sem remover) o elemento da posição “pos” da lista “li”;
Já a estrutura de dados pilha representa um conjunto dinâmico cujos elementos são inseridos e
retirados de acordo com o seguinte protocolo: o último elemento que entra no conjunto é o primeiro
que sai. Suas principais funções são:
empilhar(p, item): também conhecida como push, essa função é responsável por empilhar um
“item” no topo da pilha “p”;
desempilhar(p): também conhecida como pop, essa função é responsável por desempilhar o
elemento do topo da pilha “p” e retorná-lo;
topo(p): retorna o elemento do topo da pilha “p”, sem retirá-lo da mesma;
 
Considerando uma lista "li" e uma pilha "p" inicialmente vazias, analise a sequência de operações a
seguir:
empilhar(p, 2)
empilhar(p, 3)
inserir(li, 0, 4)
inserir(li, 0, desempilhar(p))
inserir(li, 0, topo(p))
empilhar(p, remover(li, 1))
Assinale a alternativa que representa corretamente os estados da lista "li" e da pilha "p", após a
execução, em ordem, das operações apresentadas anteriormente.
Alternativas:
• a)
Pilha "p":
3 <- topo
2
 
Lista "li":
Início -> 2, 4
• b)
Pilha "p":
2 <- topo
 
Lista "li":
Início -> 2, 3, 4
Alternativa assinalada
• c)
Pilha "p":
3 <- topo
2
 
Lista "li":
Início -> 2, 3, 4
• d)
Pilha "p":
 
Vazia
 
Lista "li":
Início -> 2, 3, 4
• e)
Pilha "p":
Vazia
 
Lista "li":
Início -> 2, 4
2)
A estrutura de dados representa um conjunto dinâmico, cujos elementos são inseridos e retirados de
acordo com o seguinte protocolo: o primeiro elemento que entra no conjunto é o primeiro que
sai. Dentre suas principais funções, estão:
enfileirar(f, item): também conhecida como enqueue, enfileira o elemento “item” no final da fila “f”;
desenfileirar(f): também conhecida como dequeue, desenfileira o elemento do início da fila “f” e o retorna;
inicio(f): retorna o elemento do início da fila “f”, sem retirá-lo na mesma.
Já a estrutura de dados pilha representa um conjunto dinâmico cujos elementos são inseridos e
retirados de acordo com o seguinte protocolo: o último elemento que entra no conjunto é o primeiro
que sai. Suas principais funções são:
empilhar(p, item): também conhecida como push, essa função é responsável por empilhar um
“item” no topo da pilha “p”;
desempilhar(p): também conhecida como pop, essa função é responsável por desempilhar o
elemento do topo da pilha “p” e retorná-lo;
topo(p): retorna o elemento do topo da pilha “p”, sem retirá-lo da mesma.
 
Considerando uma fila "f" e uma pilha "p" inicialmente vazias, analise a sequência de operações a
seguir:
enfileirar(f, 2)
enfileirar(f, 3)
empilhar(p, 4)
empilhar(p, desenfileirar(f))
empilhar(p, inicio(f))
enfileirar(f, topo(p))
Assinale a alternativa que representa corretamente os estados da fila "f" e da pilha "p", após a
execução, em ordem, das operações apresentadas anteriormente.
Alternativas:
• a)
Fila "f":
Início -> 2, 3, 3 <- Fim 
 
Pilha "p":
3 <- Topo
2
4
• b)
Fila "f":
Início -> 2, 3, 3 <- Fim 
 
Pilha "p":
2 <- Topo
4 
Alternativa assinalada
• c)
Fila "f":
Início -> 3, 3 <- Fim 
 
Pilha "p":
2 <- Topo
4
• d)
Fila "f":
Início -> 3, 3 <- Fim 
 
Pilha "p":
3 <- Topo
2
4
• e)
Fila "f":
Início -> 2, 3, 3 <- Fim 
 
Pilha "p":
2 <- Topo
4
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]
Alternativa assinalada
• 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
Alternativa assinalada
• 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
Alternativa assinalada
	Av - Subst. 2 - Algoritmos e Programação Estruturada

Continue navegando