Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Programação Estruturada (/alu… Av - Subst. 2 - Algoritmos e Programação Estruturada Sua avaliação foi confirmada com sucesso (/notific × Informações Adicionais Período: 15/11/2022 00:00 à 19/11/2022 23:59 Situação: Cadastrado Pontuação: 1500 Protocolo: Avaliar Material 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. https://www.colaboraread.com.br/aluno/timeline/index/3451534101?ofertaDisciplinaId=1859626 https://www.colaboraread.com.br/notificacao/index javascript:void(0); a) b) c) d) e) 2) Alternativas: Pilha "p": 3 <- topo 2 Lista "li": Início -> 2, 4 Alternativa assinalada Pilha "p": 2 <- topo Lista "li": Início -> 2, 3, 4 Pilha "p": 3 <- topo 2 Lista "li": Início -> 2, 3, 4 Pilha "p": Vazia Lista "li": Início -> 2, 3, 4 Pilha "p": Vazia Lista "li": Início -> 2, 4 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. a) b) c) d) 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: Fila "f": Início -> 2, 3, 3 <- Fim Pilha "p": 3 <- Topo 2 4 Fila "f": Início -> 2, 3, 3 <- Fim Pilha "p": 2 <- Topo 4 Fila "f": Início -> 3, 3 <- Fim Pilha "p": 2 <- Topo 4 Fila "f": Início -> 3, 3 <- Fim Pilha "p": Alternativa assinalada e) 3) 3 <- Topo 2 4 Fila "f": Início -> 2, 3, 3 <- Fim Pilha "p": 2 <- Topo 4 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 a) b) c) d) e) a) b) c) d) e) 4) Alternativas: Início -> [5, 2, 4] Início -> [5, 4, 2] Alternativa assinalada Início -> [4, 2, 5] Início -> [4, 5, 2] Início -> [2, 4, 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 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. Pilha / B. Fila / C. Pilha Alternativa assinalada A. Pilha / B. Pilha / C. Fila A. Fila / B. Pilha / C. Fila A. Fila / B. Fila / C. Pilha A. Pilha / B. Fila / C. Fila a) b) c) d) e) 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. Fila / B. Fila / C. Pilha A. Pilha / B. Fila / C. Pilha A. Fila / B. Pilha / C. Pilha Alternativa assinalada A. Pilha / B. Pilha / C. Fila A. Fila / B. Pilha / C. Fila
Compartilhar