Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Assinale a opção correta. Sobre pilha dinâmica podemos afirmar que : usa o critério LIFO e é implementada usando-se listas encadeadas. 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. só pode ter seus dados impressos no sentido do último nó para o primeiro nó. é recomendada para qualquer tipo de aplicação em que insere-se no final e retira-se do início. Gabarito Comentado 2. 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; } ListaNo InsereNoFim BuscaNaLista InsereNoFrente RemoveNo Gabarito Comentado 3. 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: Apenas a afirmação (1) é verdadeira Apenas a afirmação (3) é verdadeira Todas as afirmações são falsas Apenas as afirmações (1) e (3) são verdadeiras Todas as afirmações são verdadeiras 4. 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; }; 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. É 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ó. 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ó. Basta alocar memória com new e armazenar o resto da divisão do número por 2 no campo dado do novo 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ó. Gabarito Comentado 5. 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) III está correta IV e V estão corretas. I e IV estão corretas I e II estão corretas. III e V estão corretas Gabarito Comentado 6. Assinale a característica que NÃO está relacionada às estruturas de dados encadeadas: 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. A memória ocupada por seus elementos é, em geral, liberada com o uso de delete. A memória para armazenar seus elementos é, em geral, alocada com o uso de new. Consomem memória de maneira permanente, só sendo liberadas ao fim do programa. 7. Sabendo que uma fila encadeada possui seus nós definidos pela : struct no { int x; no *prox; }; Marque a alternativa que representa corretamente a criação ou alocação do nó na sintaxe do C++ para utilização na fila. no *p -> new no; no p -> new no; p *no=new no; p *no -> new no; no *p=new no;
Compartilhar