Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURA DE DADOS SIMULADO Data: 05/05/2015 05:05:45 (Finalizada) 1a Questão (Ref.: 201308310110) No dia 20 de fevereiro de 2002(20022002), vivenciou-se um momento que só acontecerá novamente em 21 de dezembro de 2112(21122112). Acredito que muitas pessoas não tinham familiaridade com o termo capicua que, segundo o dicionário do Aurélio, se aplica a um grupo de algarismos que lidos da esquerda para direita, ou da direita para esquerda, representam o mesmo número. Construa uma função que receba um número inteiro longo e retorne o número escrito de trás para frente. Exemplo: recebe 123 e retorna 321. Sua Resposta: long long int espelha(long long int num ) //pode ser long long { long long int espelhado=0; //pode ser long long while (num > 0) { espelhado = 10 * espelhado + num % 10; num = num / 10; } return espelhado; } Compare com a sua resposta: long long int espelha(long long int num ) //pode ser long long { long long int espelhado=0; //pode ser long long while (num > 0) { espelhado = 10 * espelhado + num / 10; num = num / 10; } return espelhado; } 2a Questão (Ref.: 201308122991) const int TAMMAX = 100; struct TipoLista{ int qtde; // descritor que representa a quantidade de elementos na lista int elemt[TAMMAX]; }; Fundamento no tipo de dado(registro) acima que representa uma implementação de uma lista linear sequencial. Construa um procedimento para adicionar um dado no final da lista. A lista e o dado serão passados por parâmetro. Usar o mecanismo de passagem por referência se for necessário. Sua Resposta: void addFinalLista ( TipoLista &lista, int dado ){ if(lista.qtde == TAMMAX){cout << "Lista Cheia."; } else{ lista.elemt[lista.qtde] = dado; lista.qtde++; cout << "Dado adicionado com sucesso."; } } Compare com a sua resposta: void addFinalLista ( TipoLista &lista, int dado ){ if(lista.qtde == TAMMAX){cout << "Lista Cheia."; } else{ lista.elemt[lista.qtde] = dado; lista.qtde++; cout << "Dado adicionado com sucesso."; } } 3a Questão (Ref.: 201308101904) Pontos: 1,0 / 1,0 Tanto a operação TOP (acessa topo), quanto à operação POP (remover), permite acessar o último elemento armazenado em uma Pilha. Quanto à diferença entre ambas as operações em relação ao estado da Pilha é correto afirmar: Nenhuma das operações altera o estado da Pilha Somente a operação POP altera o estado da Pilha A operação TOP remove um elemento e altera o estado da Pilha Somente a operação TOP altera o estado da Pilha Ambas alteram o estado da Pilha 4a Questão (Ref.: 201308690212) Pontos: 0,0 / 1,0 Analisando o trecho de código a seguir: inicio=0; fim= tamanho - 1; meio=(inicio+fim)/2; while(procura != nomeVetor[meio] && inicio != fim) { if(procura > nomeVetor[meio]) inicio=meio+1; else fim=meio; meio=(inicio+fim)/2; } if(nomeVetor[meio]==procura) cout<<"\n....: "< < outroVetor[meio]<<endl; else cout<<"\nDado nao encontrado\n";</endl; Pode-se afirmar que: trata-se da implementação do algortimo de ordenação por inserção. trata-se da implementação do algortimo de busca sequencial trata-se da implementação do algortimo de ordenação por seleção. trata-se da implementação do algortimo de ordenação bolha. trata-se da implementação do algortimo de busca binária. 5a Questão (Ref.: 201308690210) Pontos: 0,0 / 1,0 Qual papel do for mais interno na função ordena abaixo ? void ordena( int n, int v[]) { int i, j, x; for (j = 1; j < n; ++j) { x = v[j]; for (i = j-1; i >= 0 && v[i] > x; --i) v[i+1] = v[i]; v[i+1] = x; } } Encontrar o menor valor v[j] que deve ser inserido em v[0..j-1]. Encontrar o elmento a ser eliminado do vetor Encontrar o valor de v[j] deve em v[0..j-1]. Encontrar o maior valor de x que deve ser inserido em v[0..j-1]. Encontrar o ponto onde v[j] deve ser inserido em v[0..j-1]. 6a Questão (Ref.: 201308690209) Pontos: 0,0 / 1,0 Sabendo-se que o método de ordenção bolha ou bubble sort realiza a troca de elementos adjacentes até que todos os elementos de um vetor esteja ordenado. Então, se submetermos a sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 4, 2, 5, 1. Pode-se dizer que quando o maior elemento do vetor alcançar sua posição final, a ordenação apresentada no vetor é: 1,4,2,5 2,1,4,5 4,1,2,5 1,2,4,5 2,4,1,5 7a Questão (Ref.: 201308101363) Pontos: 1,0 / 1,0 Em uma pesquisa sequencial a lista deve estar? ordenada somente o primeiro da lista. desordenada somente da metade da lista até o final. ordenada somente do início até a metade da lista. ordenada ou desordenada. sempre desordenada. 8a Questão (Ref.: 201308101940) Pontos: 1,0 / 1,0 Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim, o algoritmo que realiza a busca em vetores e que exige acesso aleatório aos elementos do mesmo e que parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento que se deseja com o elemento do meio do vetor, é chamado de: Tabela Hash Pesquisa de seleção Pesquisa ordenada Pesquisa sequêncial Pesquisa binária 9a Questão (Ref.: 201308093472) Pontos: 1,0 / 1,0 No contexto de estrutura de dados, uma pilha é: um tipo de lista linear em que as operações de inserção e remoção são realizadas na extremidade denominada topo. uma lista do tipo FIFO. um tipo de lista linear em que as operações de inserção são realizadas em uma extremidade e as operações de remoção são realizadas em outra extremidade. uma lista do tipo LILO. um tipo de lista linear em que as operações de inserção e remoção são realizadas aleatoriamente. 10a Questão (Ref.: 201308715465) Pontos: 0,0 / 1,0 Blocos únicos de códigos que realizam diversas tarefas distintas são de difícil manutenção. Portanto, utiliza-se a técnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas. Esta técnica tem como principal elemento: As Estruturas de Dados As funções As Filas Os Grafos Os Vetores
Compartilhar