Buscar

LISTAS ENCADEADAS - FINALIZANDO-PILHAS E FILA

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

Prévia do material em texto

Aluno: 
	Matr.: 
	Disc.: ESTRUTURA DE DADOS 
	2020.1 (G) / EX
		Prezado (a) Aluno(a),
Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha.
Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS.
	
	 
		
	
		1.
		Para converter de decimal para binário usamos a estrutura de dados pilha. Assinale a opção que, corretamente, indica as ações corretas para empilhar o resto da divisão gerado no processo de conversão, considerando uma lista simplesmente encadeada. Considere o tipo definido abaixo :
struct no {
int dado;
struct no *link;
};
	
	
	
	É preciso armazenar o resto da divisão do número por 2 no campo dado do primeiro nó da lista e retornar o ponteiro para este nó.
	
	
	É preciso alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó, apontar o link do novo nó para o início da lista e enfim, retornar o ponteiro para o novo nó.
	
	
	Não é necessário alocar memória com new. Basta criar uma struct do tipo no, armazenar o resto da divisão número por 2 no campo dado e aterrar o campo link.
	
	
	Basta alocar memória com new e armazenar o resto da divisão do número por 2 no campo dado do novo nó .
	
	
	Basta alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó e aterrar o link do novo nó.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		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(próximo)pt=próximo;
	
	
	while(pt->próximo != null)pt=pt->próximo->proximo;
	
	
	while(pt != null)pt=pt->próximo;
	
	
	while(pt->próximo->proximo)pt=pt->próximo;
	
Explicação:
O código será:
while(pt->próximo)pt=pt->próximo;
	
	
	
	 
		
	
		3.
		Assinale a opção correta.  Sobre pilha dinâmica podemos afirmar que :
	
	
	
	insere-se em qualquer posição, antes ou após qualquer nó, visto que é dinâmica.
	
	
	usa o critério FIFO, visto que é dinâmica.
	
	
	é recomendada para qualquer tipo de aplicação em que insere-se no final e retira-se do início.
	
	
	só pode ter seus dados impressos no sentido do último nó para o primeiro nó.        
	
	
	usa o critério LIFO e é implementada usando-se listas encadeadas.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		4.
		Sobre uma estrutura de dados do tipo LIFO, observe as seguintes afirmações:
(1) É uma pilha.
(2) Pode ser uma fila com prioridades
(3) É uma estrutura onde o primeiro elemento a entrar é o último a sair.
Sobre estas afirmações marque a opção correta:
	
	
	
	Todas as afirmações são falsas
	
	
	Todas as afirmações são verdadeiras
	
	
	Apenas a afirmação (1) é verdadeira
	
	
	Apenas as afirmações (1) e (3) são verdadeiras
	
	
	Apenas a afirmação (3) é verdadeira
	
	
	
	 
		
	
		5.
		Em termos da estrutura de dados do tipo FILA  (fila encadeada com alocação dinâmica), a sequência de ações
             insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
promoveria a configuração da estrutura:
	
	
	
	5 8 20
	
	
	10 3 20
	
	
	20 5 8
	
	
	10 3 5 8 20
	
	
	5 8
	
Explicação:
 insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
10-> 3 -> 5 -> 8 após inserir 10,3,5 e 8. Inserção no fim
Depois do 1o. remove, temos 3->5->8
Depois do 2o. remove temos 5 -> 8
Ao ocorrer o último insere temos  : 5 -> 8 - > 20, sendo que 5 esta no início e 20 no fim
	
	
	
	 
		
	
		6.
		Tínhamos declarado um ponteiro de nome ptr e precisávamos construir uma estrutura de repetição que pudesse repetir enquanto o ponteiro não fosse nulo. Observe os trechos abaixo e assinale qual a afirmativa correta.
I if (ptr !=NULL)
II if( !ptr )
III if(ptr)
IV while (ptr !=NULL)
V while (ptr)
	
	
	
	I e II estão corretas.
	
	
	III está correta
	
	
	III e V estão corretas
	
	
	I e IV estão corretas
	
	
	IV e V estão corretas.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Assinale a característica que NÃO está relacionada às estruturas de dados encadeadas:
	
	
	
	A memória para armazenar seus elementos é, em geral, alocada com o uso de new.
	
	
	A memória ocupada por seus elementos é, em geral, liberada com o uso de delete.
	
	
	Consomem memória de maneira permanente, só sendo liberadas ao fim do programa.
	
	
	Cada elemento guarda pelo menos um ponteiro para outro elemento da estrutura.
	
	
	Em geral, marca-se o último elemento com um ponteiro de valor NULL.
	
	
	
	 
		
	
		8.
		Estava um aluno estudando Lista Simplesmente Encadeada quando encontrou  em um site a definição da struct nodo e de uma função cujo nome você deverá escolher para substituir XXX nas opções abaixo depois que analisar a função, assumindo que teste foi realizado, permitindo  que a operação fosse realizada.
 
 struct nodo
{
  int info;
  struct nodo *prox;
};
nodo* XXX(nodo *ptr, int valor)
{
  nodo *temp = new nodo;
  ...
  temp->info = valor;   
  temp->prox = ptr;
  return temp;        
}
	
	
	
	RemoveNo
	
	
	InsereNoFrente
	
	
	ListaNo
	
	
	InsereNoFim
	
	
	BuscaNaLista

Continue navegando