Buscar

ESTRUTURA DE DADOS A8 EX4

Prévia do material em texto

06/10/2020 EPS
https://simulado.estacio.br/alunos/?user_cod=2063030&matr_integracao=201803260271 1/6
 
 
 
 ESTRUTURA DE DADOS 8a aula
 Lupa 
 
Exercício: CCT0826_EX_A8_201803260271_V4 10/09/2020
Aluno(a): DANIELLE GALVÃO SALDANHA 2020.3 EAD
Disciplina: CCT0826 - ESTRUTURA DE DADOS 201803260271
 
Podemos dizer que uma lista encadeada tem as seguintes características:
i) conhecida como lista ligada.
ii) seus nós são responsáveis para manter a sequência da lista.
iii) o último nó deve apontar para NULL.
Assinale a alternativa que informa as afirmativas corretas.
Somente a afirmativa i esta correta.
Somente a afirmativa iii esta correta.
Somente as afirmativas i e ii estão corretas.
 Todas as afirmativas estão corretas.
Todas as afirmativas estão incorretas.
Respondido em 10/09/2020 00:41:58
Gabarito
 Comentado
 
 
 Tei Ping , famosa cabeleireira das estrelas, possui uma lista não ordenada de clientes em que registra apenas o nome, endereço e o telefone de cada
cliente. Como não se pode pré-definir um limite para o tamanho da lista, como se pode implementar a inserção de um novo cliente na lista ? Sabe-se
 que cada cliente é do �po Cliente e a lista é do �po List assim definidos :
 
struct Cliente {
 long int matricula;
 string nome, endereco e tel;
};
struct List {
 Cliente p;
 struct List *link;
 };
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
javascript:diminui();
javascript:aumenta();
06/10/2020 EPS
https://simulado.estacio.br/alunos/?user_cod=2063030&matr_integracao=201803260271 2/6
List * insereCliente(List *i, Cliente c){
 List *novo ;
 novo->p = c;
 novo->link = i;
 return novo;
}
List * insereCliente(List *i) {
 List *novo = new List;
 Cliente c;
 novo->p = c;
 novo->link = i;
 return novo;
}
 List * insereCliente(List *i, Cliente c)
{
 List *novo = new List;
 novo.p = c;
 novo.link = i;
 return novo;
}
 List * insereCliente(List *i, Cliente c)
{
 List *novo = new List;
 novo->p = c;
 novo->link =i;
 return novo;
}
List insereCliente(List *i, Cliente c)
{
 List novo[];
 novo[0].p = c;
 novo[0].link = i;
 return novo;
}
Respondido em 10/09/2020 00:39:27
 
 
Explicação:
Analisando a resposta certa :
List * insereCliente(List *i, Cliente c)
06/10/2020 EPS
https://simulado.estacio.br/alunos/?user_cod=2063030&matr_integracao=201803260271 3/6
{
 List *novo = new List; //aloca memória para novo nó
 novo->p = c; //acessa o campo p da área apontada por novo e atribui o cliente c ao campo p
 novo->link =i; //faz o link do novo nó apontar para onde i está apontando
 return novo; //retorna o endereço do novo nó
}
Logo, esta função insere um novo nó no início de uma lista simplesmente encadeada e retorna o ponteiro para o início da lista resultante.
Analisando as demais opções, que estão erradas :
2o. item .... Opção errada : faltou alocar memória
3o. item .... Opção errada : Cliente c não está definido.
4o. item .... Opção errada : Usa ponto quando deveria ser o operador seta
5o. item .... Opção errada : Muitos erros... Usa vetor sem definir tamanho e trabalha com o elemento de índice zero de
novo, acessando os campos com ponto.
 
 
Tem-se uma estrutura de dados do tipo lista encadeada com 10 elementos, em que o primeiro e o último elemento estão
ligados entre si. Trata-se de uma estrutura de dados denominada Lista
Invertida
Duplamente Encadeada
Binária
 Encadeada Circular
Balanceada
Respondido em 10/09/2020 00:41:35
 
 
Explicação:
Uma lista encadeada circular é uma lista encadeada e portanto, dinÂmica, em que o ponteiro do último nó aponta para o
primeiro nó. A lista circular também pode ser vazia.
 
 
Dr. Pei Tam possui uma lista não ordenada de pacientes de seu consultório em que registra apenas o nome endereço e o telefone de cada paciente.
Como não há limites para o crescimento de sua lista, como se pode implementar a inserção de um novo paciente na lista, sabendo que cada paciente é
do �po Paciente e a lista é do �po List assim definidos :
struct Paciente {
 long int matricula;
 string nome, endereco e tel;
};
struct List {
 Paciente p;
 struct List *link;
 };
 List * inserePac(List *i, Paciente pt)
{
 List *novo = new List;
 novo->p = pt;
 Questão3
 Questão4
06/10/2020 EPS
https://simulado.estacio.br/alunos/?user_cod=2063030&matr_integracao=201803260271 4/6
 novo->link =i;
 return novo;
}
List * inserePac(List *i) {
 List *novo = new List;
 Paciente pat;
 novo->p = pat;
 novo->link = i;
 return novo;
}
 List * inserePac(List *i, Paciente pac)
{
 List *novo = new List;
 novo.p = pac;
 novo.link = i;
 return novo;
}
List * inserePac(List *i, Paciente pt){
 List *novo ;
 novo->p = pt;
 novo->link = i;
 return novo;
}
List insereCliente(List *i, Paciente pac)
{
 List novo[];
 novo[0].p = pac;
 novo[0].link = i;
 return novo;
}
Respondido em 10/09/2020 00:41:18
Gabarito
 Comentado
 
 
Uma estrutura de dados pode ser Estática ou Dinâmica. No primeiro caso os limites são:
 Determinados pelo problema em que serão utilizados
Indeterminados
Determinados pelo usuário
Determinados pelos ponteiros
Determinados pela memória
 Questão5
06/10/2020 EPS
https://simulado.estacio.br/alunos/?user_cod=2063030&matr_integracao=201803260271 5/6
Respondido em 10/09/2020 00:41:05
 
 
Explicação:
Em uma estrutura estática o espaço em memória é definido antes da
execução e será definido pelas características do problema. Não é
indeterminado, não temos que usar ponteiros, não é determinado pelo
usuário ou pela memória.
 
Quando a alocação é dinâmica, o espaço em memória é definido durante a
execução do programa e assim, não podemos determinar previamente o
quanto de memória será alocada.
 
 
As variáveis são na verdade trecho de memórias que armazenam dados
de diversas naturezas, portanto sempre que declara-se uma variável, na
linguagem C++, é necessário informar o tipo de dado que esta irá
armazenar. Um tipo especial de variáveis são os ponteiros, isto é,
variáveis que armazenam apenas os endereços de outras variáveis.
Assim os ponteiros são usados para que se possa acessar de forma
indireta uma outra variável. Sabendo-se disto e supondo que o endereço
na memória da variável "a" é 100 e o endereço da memória da variável
ponteiro é 200, analise o trecho de código abaixo e marque a alternativa
que representa a saída do programa:
 
200 9 100
 100 9 200
9 9 200
9 100 200
100 100 200
Respondido em 10/09/2020 00:40:50
 
 
Explicação:
100 ===> endereço da memória da variável a
9 ===> valor da variável a
200 ===> endereço da memória da variável ponteiro
 
 
 Questão6
 Questão7
06/10/2020 EPS
https://simulado.estacio.br/alunos/?user_cod=2063030&matr_integracao=201803260271 6/6
 
Seja uma lista encadeada cujo nodo é representado por:
struct nodo{
 int valor;
 nodo prox;
};
 
Esta estrutura possui um ponteiro de referência que aponta sempre para o primeiro nodo da lista, sendo este
declarado como: nodo *lista;
Numa lista encadeada seu último nodo possui o campo prox sempre igual a NULL. Marque a opção que representa o
trecho de código onde um ponteiro auxiliar é capaz de percorre a lista até seu último nodo:
 nodo *aux=lista;
 while(aux->prox)aux=aux->prox; 
 nodo *aux=lista;
 while(lista->prox)aux=aux->prox;
 nodo *aux=lista;
 while(aux)aux->prox=aux; 
 nodo *lista=aux;
 while(aux->prox)aux=aux->prox; 
 nodo *aux=lista;
 while(aux->prox)aux->prox=aux->prox;
 
Respondido em 10/09/2020 00:40:40
 
 
Explicação:
nodo *aux=lista;
 while(aux->prox)aux=aux->prox;Seja uma lista encadeada cujos nodos são formados pelo seguinte tipo de dado:
struct empregado{
 long int matricula;
 float salario;
 empregado *proximo;
};
 
Suponha que o ponteiro pont tenha o endereço de um nodo da lista, o qual se deseja atribuir um novo valor
para o campo salario. Marque a alternativa que corretamente altera o valor do campo salario para 5000.00.
pont->empregado->salario=5000.00;
 salario=5000.00;
pont.salario=5000.00;
pont.empregado.salario=5000.00
 pont.empregado->salario=5000.00;
Respondido em 10/09/2020 00:40:31
 
 
Explicação:
Criar a entrada:
salario=5000.00;
 
 
 
 Questão8
javascript:abre_colabore('38403','204352264','4075048745');

Continue navegando

Outros materiais