Baixe o app para aproveitar ainda mais
Prévia do material em texto
02/06/2020 Unicesumar - Ensino a Distância 1/8 ATIVIDADE 2 - ENG SOFT - ESTRUTURA DE DADOS I - 52/2020 Período:18/05/2020 08:00 a 02/06/2020 23:59 (Horário de Brasília) Status:ABERTO Nota máxima:0,50 Gabarito:Gabarito será liberado no dia 03/06/2020 00:00 (Horário de Brasília) Nota obtida: 1ª QUESTÃO Na informática, a pilha é uma estrutura em que os dados são inseridos e removidos no seu topo. São estruturas conhecidas como Last In, First Out (LIFO), que pode ser traduzido por último a entrar, primeiro a sair. A operação de entrada lê o dado diretamente na primeira posição disponível, que representa o topo da pilha, essa posição é guardada no atributo fim. Depois da leitura, o valor de fim é atualizado para que ele aponte sempre para a primeira posição disponível. A operação de saída se dá no elemento fim -1 do vetor dados, uma vez que o atributo fim aponta para a primeira posição livre. Após a remoção do item, o valor de fim deve ser atualizado para apontar corretamente para o final da pilha que acabou de diminuir. Oliveira, P. M.; Pereira, R. de L. Estrutura de Dados I. Maringá-Pr.: Unicesumar, 2019. Com relação à estrutura de pilha e às operações associadas a esse tipo de estrutura, assinale a alternativa que apresenta os nomes dos métodos corretamente segundo o referencial bibliográfico da disciplina. ALTERNATIVAS Push(x) e Pop() são os métodos para inserção e remoção, respectivamente. Root(x) e Front() são os métodos para inserção e remoção, respectivamente. SetLast(x) e GetFront() são os métodos para inserção e remoção, respectivamente. Dequeue(x) e Enqueue são os métodos para inserção e remoção, respectivamente. AddFirst(x) e DelLast() SetLast() e GetFront() são os métodos para inserção e remoção, respectivamente. 2ª QUESTÃO O algoritmo a seguir implementa a função imprimir de uma lista simplesmente encadeada. Lembrando que o nó da estrutura de dados de uma lista simplesmente encadeada possui apenas um ponteiro para o próximo elemento da lista. lista ← ptLista enquanto lista <> NULL faca imprimir (lista.info) lista ← lista.prox Oliveira, P. M.; Pereira, R. de L. Estrutura de Dados I. Maringá-Pr.: Unicesumar, 2019. Assinale a alternativa com a correta implementação desse algoritmo em linguagem C: ALTERNATIVAS 02/06/2020 Unicesumar - Ensino a Distância 2/8 void imprimir(){ for (int i =0; i < 10;){ printf("%d, ", info i ); i++; } } void imprimir(){ lista = ptLista; while(lista != 0) { printf(“%d, “, lista->info); lista = lista->prox; } } void imprimir(){ lista = ptLista; while(lista->prox != NULL) { printf(“%d, “, lista->info); lista = lista->prox; } } void imprimir(lista = ptLista){ do{ printf(“%d, “, lista->info); lista = lista->prox; } while(lista->prox != NULL) } void imprimir(info){ lista = ptLista; while(lista->info != NULL) { printf(“%d, “, lista->prox); lista = lista->info; } } 3ª QUESTÃO 02/06/2020 Unicesumar - Ensino a Distância 3/8 Considere a lista de instruções a seguir: 1. int x; int *y; 2. x = 25; 3. y = &x; 4. *y = 15; 5. y = y + 1; 6. *y = *y + 5; O valor armazenado em x é ________. Assinale a alternativa que complete corretamente a afirmação. ALTERNATIVAS 15 16 20 25 30 4ª QUESTÃO Uma pilha possui regras de entrada e saída, fora isso, as estruturas são muito parecidas. A lista possui como característica a ordenação independente da forma de armazenamento. Então, para implementar de forma dinâmica uma pilha, basta criar uma lista dinâmica e adicionar nela as regras LIFO: o último que entra é o primeiro que sai. Oliveira, P. M.; Pereira, R. de L. Estrutura de Dados I. Maringá-Pr.: Unicesumar, 2019. Assinale a alternativa que insere um elemento no topo da pilha, considerando que o topo é o final da pilha. ALTERNATIVAS void pilha_inserir(){ pilha.dados pilha. fim − 1 = 0; pilha.fim--; } 02/06/2020 Unicesumar - Ensino a Distância 4/8 void pilha_inserir(){ printf("\nDigite o valor a ser empilhado: "); scanf("%d", &pilha.dados pilha. fim ); pilha.fim++; } . void pilha_inserir(ptr_no pilha){ ptr_no atual; atual = (ptr_no) malloc(sizeof(no)); while(pilha->proximo != NULL){ atual = pilha; pilha = pilha->proximo; } atual->proximo = NULL; } void pilha_inserir(ptr_no pilha){ while(pilha->proximo != NULL){ pilha = pilha->proximo; } pilha->proximo = (ptr_no) malloc(sizeof(no)); pilha = pilha->proximo; pilha->dado = rand()0; pilha->proximo = NULL; } 5ª QUESTÃO 02/06/2020 Unicesumar - Ensino a Distância 5/8 Considere o código em linguagem C a seguir: void function(tstruct estrutura, int tamanho) { if (estrutura.inicio == estrutura.fim) { printf("\nEstrutura vazia!\n\n"); system("pause"); } else { int i; for (i = 0; i < tamanho; i++) { estrutura.dados i = estrutura.dados i + 1 ; } estrutura.dados estrutura. fim = 0; estrutura.fim--; } } A função function _______________ o _______________ de uma estrutura do tipo _______________. Assinale a alternativa que complete as lacunas corretamente. ALTERNATIVAS retira, topo, pilha. retira, último, fila. inclui, último, fila. inclui, topo, pilha. retira, primeiro, fila. 6ª QUESTÃO 02/06/2020 Unicesumar - Ensino a Distância 6/8 Tanto a fila como a pilha são conjuntos ordenados de itens. Apesar de simples, ambas as estruturas (fila e pilha) são amplamente utilizadas em diversas áreas da computação. OLIVEIRA, P. M.; PEREIRA, R. L. Estrutura de Dados I. Maringá: Unicesumar, 2019. Em muitos problemas computacionais, recomenda-se a utilização de Filas ou Pilhas. Cabe ao desenvolvedor analisar a situação e decidir qual política utilizar. Nesse aspecto, considere as seguintes situações: I. Gerenciamento de impressões. II. Organizar alguns livros de modo vertical. III. Gerenciar os itens inseridos em uma sacola. Assinale a alternativa que melhor corresponda às escolhas dos desenvolvedores na ordem das situações: ALTERNATIVAS Fila, Fila, Fila. Fila, Fila, Pilha. Pilha, Fila, Fila. Fila, Pilha, Pilha. Pilha, Pilha, Pilha. 7ª QUESTÃO A maneira mais simples de guardar um conjunto de informação na memória se dá pelo uso de vetores. Na criação de uma pilha, o vetor se mostra muito eficaz, pois a entrada e a saída são feitas sempre no seu último elemento. Porém, para a fila, o vetor mostra algumas dificuldades de implementação, posto que o elemento que sai é sempre o mais antigo e uma das formas de manter os dados de forma sequencial é mover todo o resto dos dados para as posições precedentes. Isso se deve as características do vetor, em mantém os dados armazenados numa estrutura sequencial. Oliveira, P. M.; Pereira, R. de L. Estrutura de Dados I. Maringá-Pr.: Unicesumar, 2019. Com base no contexto apresentado das diversas estruturas de dados, denomina-se __________ uma estrutura de dados que possui três campos: dois ponteiros e campo de informação. Assinale a alternativa que completa corretamente a lacuna acima: ALTERNATIVAS 02/06/2020 Unicesumar - Ensino a Distância 7/8 fila pilha vetor lista duplamente encadeada lista simplesmente encadeada 8ª QUESTÃO Tanto a fila como a pilha são conjuntos ordenados de itens, porém ambas se diferenciam pelas regras de inserção e remoção de elementos. Na pilha, a entrada e a saída de dados se dão pela mesma extremidade, chamada de topo da pilha. Na fila, a entrada e a saída ocorrem em lugares opostos: a entrada acontece no final da fila, e a saída, no seu início. OLIVEIRA, P. M.; PEREIRA, R. L. Estrutura de Dados I. Maringá: Unicesumar, 2019. Considere uma estrutura de dados em que aplicamos a política deLIFO, com os dados armazenados e expostos na seguinte ordem 1, 2, 3, 4 e 5. Diante do que foi exposto, assinale a alternativa que corresponde às ações da política de LIFO. ALTERNATIVAS O último elemento a ser retirado é o 5. O elemento 3 nunca poderá ser retirado. O primeiro elemento a ser retirado é o 1. O primeiro elemento a ser retirado é o 5. O elemento 4 só poderá ser retirado após o 1 e o 5. 9ª QUESTÃO Quando criamos um vetor, dizemos na sua declaração qual será o seu tamanho. Independente se vamos usá-lo por completo ou uma parte, todo o espaço na memória é reservado assim que o programa é inicializado. Uma forma de resolver esses problemas é criar vetores dinâmicos, com seu tamanho definido em tempo de execução do programa. OLIVEIRA, P. M.; PEREIRA, R. L. Estrutura de Dados I. Maringá-Pr.: Unicesumar, 2019. Em algumas situações, é necessário alocar o tamanho de um vetor dinamicamente. Essa situação é bem comum em programas que recebem uma quantidade variável de dados, como programas de estatística. Assinale a maneira correta de alocar memória dinamicamente para um vetor. ALTERNATIVAS 02/06/2020 Unicesumar - Ensino a Distância 8/8 int a tamanho ; int a sizeof(int) ; int *vetor = a tamanho ; int a = sizeof (int) * tamanho; vetor = (int *) malloc (sizeof (int) * tamanho); 10ª QUESTÃO Considere o código a seguir: void function(tstruct estrutura, int tam) { int i; printf(" " ); for(i = 0; i < tam; i + + )printf( " printf( " \n\n"); } Analisando o código acima, escrito em linguagem C, podemos afirmar que: ALTERNATIVAS Exclui o dado que está na posição atual. Inclui um novo dado no topo da estrutura. Mostra os dados armazenados na estrutura. Exclui todos os dados armazenados na estrutura. Gera dados automaticamente em uma estrutura do tipo lista.
Compartilhar