Buscar

AV Estrutura de Dados 2015

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 6 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 6 páginas

Prévia do material em texto

Fechar 
 
Avaliação: » ESTRUTURA DE DADOS 
Tipo de Avaliação: AV 
Aluno: 
Professor: JANE TAVARES ALVAREZ DA SILVA Turma: 
Nota da Prova: 7,0 Nota de Partic.: 1 Data: 
 
 
 1a Questão (Ref.: 201402768814) Pontos: 0,0 / 1,0 
O conceito de ponteiros foi estudado em uma de nossas aulas. Sendo assim, leia atentamente as afirmativas 
abaixo e assinale a opção correta. 
 
I A variável ponteiro não precisa ser declarada. 
II A variável ponteiro armazena endereço. 
III Quanto se usa &nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável 
apontada pela variável ponteiro. 
IV Quando se usa nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável 
ponteiro. 
V Quando se usa *nomeDaVariávelPonteiro com o comando cout, é exibido o conteúdo da variável 
apontada pela variável ponteiro. 
 
 
 
II e V estão corretas 
 
I IV e V estão corretas 
 
IV e V estão corretas 
 
Somente a II está correta 
 
I, II e IV estão corretas 
 
 
 
 2a Questão (Ref.: 201402818562) Pontos: 0,5 / 0,5 
Qual estrutura de dados não linear que é utilizada na implementação de Redes de Computadores, na 
Computação Gráfica, em modelagem de circuitos digitais e etc. E que se caracteriza por apresentar 
um conjunto de nós e conexões entre eles. 
 
 
 
Listas Encadeadas. 
 
Vetores 
 
Grafos 
 
Filas Encadeadas 
 
Pilhas Encadeadas 
 
 
 
 3a Questão (Ref.: 201402432527) Pontos: 0,5 / 0,5 
As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o 
que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características 
especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada 
para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando 
se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na 
memória. 
 
 
 
Lista Sequencial 
 
Pilha Encadeada 
 
Lista Encadeada 
 
Pilha Sequencial 
 
Fila Sequencial 
 
 
 
 4a Questão (Ref.: 201402434932) Pontos: 0,5 / 0,5 
 
 
 
 
Auxiliar = 100 Numero1 = 900 Numero2 = 20 
 
Auxiliar = 101 Numero1 = 900 Numero2 = 20 
 
Auxiliar = 100 Numero1 = 1000 Numero2 = 20 
 
Auxiliar = 111 Numero1 = 1000 Numero2 = 80 
 
Auxiliar = 100 Numero1 = 900 Numero2 = 80 
 
 
 
 5a Questão (Ref.: 201402843812) Pontos: 0,5 / 0,5 
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, 
agrupados sob uma lógica e associados por um nome. 
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição 
de uma estrutura como: 
struct aluno { 
string nome; 
float nota; 
}; 
 
Suponha ainda que exista um vetor desta estrutura, definido como: 
 
aluno vet [100]; 
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro 
elemento deste vetor. 
 
 
 
vet[10]=aluno.5.7; 
 
aluno.vet[10].nota=5.7; 
 
vet[10].aluno.nota=5.7 ; 
 
aluno.vet[10]=5.7; 
 
vet[10].nota=5.7; 
 
 
 
 6a Questão (Ref.: 201402230174) Pontos: 0,5 / 0,5 
O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus 
elementos o nome e a nota obtida pelo candidato. Deseja-se que este vetor seja ordenado pela nota, em ordem 
decrescente. Sendo o vetor pequeno (poucos elementos), o programador responsável por desenvolver este algoritmo, 
escolheu um método de ordenação que executa os seguintes passos: 
 Selecione candidato com maior nota entre todos e troque-o com o candidato que está na primeira posição do 
vetor; 
 Selecione o segundo maior e troque-o com o candidato que está na segunda posição; 
 Os passos descritos anteriormente são seguidos para a terceira nota, quarta nota e assim por diante até que reste 
apenas um candidato. 
O algoritmo utilizado pelo programador trata-se do método de ordenação denominado: 
 
 
 
Inserção 
 
Heapsort 
 
Quicksort 
 
Bolha 
 
Seleção 
 
 
 
 7a Questão (Ref.: 201402432529) Pontos: 0,5 / 0,5 
As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, 
e isto em muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa 
pilha é conhecida na literatura como PUSH (X). Para remover um elemento de uma pilha a 
operação é o POP( ). Assim estas duas funções devem implentar o algoritmo LIFO (Last In - 
First Out ) ou o último a entrar é o primeiro a sair. Sendo assim se aplicarmos as seguintes 
operações em uma PILHA vazia: 
PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ). 
Quais valores restarão na pilha? 
 
 
 
Apenas o 10 
 
10 e 2 
 
Apenas o 2 
 
7 e 2 
 
Nenhum, a pilha estará vazia. 
 
 
 
 8a Questão (Ref.: 201402470119) Pontos: 1,0 / 1,0 
Seja o seguinte exemplo de nodo de uma lista de encadeada: 
 
struct nodo{ 
 float valor; 
 string produto; 
 nodo * proximo; 
 }; 
Sabendo-se que nesta lista o último nó ou nodo possui o campo próximo nulo 
(null), marque a alternativa que representa corretamente a operação de busca 
do último nodo, a partir de um ponteiro pt apontado para o primeiro nodo da 
lista. 
 
 
 
while(pt->próximo)pt=pt->próximo; 
 
while(pt->próximo->proximo)pt=pt->próximo; 
 
while(próximo)pt=próximo; 
 
while(pt->próximo != null)pt=pt->próximo->proximo; 
 
while(pt != null)pt=pt->próximo; 
 
 
 
 9a Questão (Ref.: 201402251333) Pontos: 1,5 / 1,5 
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. 
 
 
 
Resposta: void addFinalLista(TipoLista &lista, int dado) { if(lista.qtde == TAMMAX) { cout<< " 
Lista esta cheia."; } else{lista.elemt[lista.qtde] = dado; lista.qtde++; cout<< " Dado adicionado."; } } 
 
 
Gabarito: 
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."; 
} } 
 
 
 
 10a Questão (Ref.: 201402436690) Pontos: 1,5 / 1,5 
 Faça uma função em C++ para criar uma lista duplamente encadeada com um nó e 
armazenar neste nó o valor 100. Note que deverá ser retornado o ponteiro para o nó criado. 
Considere 
 struct nodupla { 
 int dado; 
 struct *dlink, *elink; 
 }; 
 
e o seguinte protótipo : nodupla *cria(); 
 
 
 
Resposta: nodupla *cria() { nodupla *novo ; novo = new nodupla; novo-> dado = 100; novo -> elink 
= novo -> dlink = NULL; return novo; } 
 
 
Gabarito: 
nodupla *cria() 
{ 
 nodupla *novo; 
 
 novo = new nodupla; 
 novo->dado = 100; 
 novo->elink = novo->dlink = NULL; 
 return novo; 
 
} 
 
 
 
 
Período de não visualização da prova: desde 12/06/2015 até 25/06/2015.

Outros materiais