Baixe o app para aproveitar ainda mais
Prévia do material em texto
Quantos são e quais são os tipos de Listas que podemos ter? 4 Encadeada, Duplamente Encadeada, Encadeada Circular e Duplamente Encadeada Circular; Sobre registros utilizados em Listas Duplamente Encadeadas, Considerando o conteúdo ministrado na aula 6, assinale a alternativa INCORRETA (ERRADA). Os registros possuem duas variáveis ponteiros do mesmo tipo do registro, para armazenar o endereço do próprio registro e do próximo da Lista. Sobre a rotina do Programa a seguir: struct Dados { char nome[30]; struct Dados *ante, *prox; } *prim, *ulti, *ptr; teste() { while( prim != NULL) { ptr = prim; prim = prim> prox; free(ptr); } ulti = NULL; } Considerando o conteúdo ministrado na aula 6, assinale a alternativa INCORRETA (ERRADA). A linha de comando “ptr = prim;” é desnecessária, pois podemos liberar espação de memória diretamente com a variável “prim”. Ficando deste modo o comando: “free(prim>prox);”. Com relação as informações sobre algoritmos de Pilhas e Filas Fila a seguir, responda II – Quando trabalhamos com o conceito Pilha, precisamos de uma única variável de controle para informar onde é o início da Pilha. Já para o conceito de Fila, precisamos de duas variáveis de controle, uma para informar ao programa onde a Fila começa e outra para informar onde a Fila termina. III – No algoritmo de Pilha, se a variável de controle estiver com o conteúdo NULL, significa que não existe nenhum dado armazenado na Pilha. IV – Quando retiramos dados de uma Fila, temos que seguir a seguinte ordem: 1º trabalhar com o conteúdo do registro; 2º armazenar o endereço do registro em uma variável auxiliar; 3º atualizar a variável de controle par o próximo endereço da Fila; 4º liberar o espaço de memória que está na variável auxiliar. Se não seguirmos corretamente estes passos, podemos perder o encadeamento da Fila. As questões II, III e IV estão corretas Sobre incluir elementos em uma Lista: I – Para incluir registros em uma Lista, estes podem ser incluídos no início, no final ou no meio da Lista. Para o caso de incluir no final e no início, temos que tomar o cuidado de após conectar o registro da Lista, atualizar as respectivas variáveis de controle. II – Os passos corretos e em ordem, para incluir registros em uma Lista são: 1º Alocar espaço de memória; 2º Armazenar os dados; 3º Conectar (ligar) o registro na Lista; 4º Atualizar as variáveis de controle. III – Se a Lista não for ordenada, com relação a programação, é mais fácil incluir no início ou no final da Lista. As questões I, II e III estão corretas. Para armazenar dados em uma Pilha, os seguintes passos devem ser realizados na respectiva ordem 1. Alocar espaço de memória 2. Armazenar os dados no espaço alocado 3. Conectar o registro alocado na Pilha 4. Atualizar variáveis de controle A função a seguir lista na tela todos os registros de uma determinada Lista Encadeada e não Circular. Se esta Lista fosse Circular, quis alterações deveriam ser realizadas para não corrermos o risco de ficarmos em loop? listar() { ptr = prim; while( ptr != NULL) { printf(“Nome: %s \n”, ptr> nome); ptr = ptr> prox; } } aux = ptr = prim; do { printf(“Nome: %s \n”, ptr> nome); ptr = ptr> prox; } while( ptr != aux); Sobre incluir elementos em uma Lista, responda: I – Para incluir registros em uma Lista, estes podem ser incluídos no início, no final ou no meio da Lista. Para o caso de incluir no final e no início, temos que tomar o cuidado de após conectar o registro da Lista, atualizar as respectivas variáveis de controle. II – Os passos corretos e em ordem, para incluir registros em uma Lista são: 1º Alocar espaço de memória; 2º Armazenar os dados; 3º Conectar (ligar) o registro na Lista; 4º Atualizar as variáveis de controle. III – Se a Lista não for ordenada, com relação a programação, é mais fácil incluir no início ou no final da Lista As questões I, II e III estão corretas Sobre Pilhas, é correto afirmar: O último elemento que entrou na Pilha, obrigatoriamente deve ser o primeiro a sair Sobre alocação dinâmica de memória, é correto afirmar: A principal vantagem de trabalharmos com alocação dinâmica de memória é que não precisamos definir a quantidade de espaço a ser alocado em linha de código. O espaço de memória é alocado de acordo com a necessidade em tempo de execução do programa Qual a principal diferença entre as metodologias Pilha, Fila e Lista? Em Pilhas somente podemos incluir e excluir do topo da Pilha. Em Fila temos que incluir em uma extremidade e retirar em outra extremidade da Fila. Em Listas podemos incluir e excluir nas extremidades e no meio da Lista Sobre realizar pesquisas em Listas Duplamente Encadeadas Circulares, Considerando o conteúdo ministrado na aula 6, assinale a alternativa INCORRETA (ERRADA). Não fazemos pesquisas em Listas Duplamente Encadeadas Circulares, por não termos como saber onde termina e onde começa a Lista. Com relação as informações sobre Fila a seguir, responda I – Quando declaramos um registro que será utilizado para a criação de Filas, temos que criar um campo ponteiro do mesmo tipo do registro para conter o endereço de memória do próximo registro a entrar na Fila. Deste modo, quando tiramos um registro da Fila, sabemos onde está o anterior a este que saiu. Somente a afirmação I está correta
Compartilhar