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. usa o critério FIFO, visto que é dinâmica. insere-se em qualquer posição, antes ou após qualquer nó, 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ó. 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; } RemoveNo ListaNo InsereNoFim BuscaNaLista InsereNoFrente 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: Todas as afirmações são falsas Apenas a afirmação (1) é verdadeira Apenas as afirmações (1) e (3) são verdadeiras Todas as afirmações são verdadeiras Apenas a afirmação (3) é verdadeira 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; }; 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 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ó. 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 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) I e IV estão corretas III e V estão corretas I e II estão corretas. III está correta IV e V estão corretas. Gabarito Comentado 6. Assinale a característica que NÃO está relacionada às estruturas de dados encadeadas: Em geral, marca-se o último elemento com um ponteiro de valor NULL. 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. Cada elemento guarda pelo menos um ponteiro para outro elemento da estrutura. 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; no *p -> new no; p *no=new no; p *no -> new no;
Compartilhar