QUESTÃO 1 O maior problema do uso de uma lista estática é a limitação do seu tamanho que precisa ser pré-definido. Porém, para casos em que você precisa de mais flexibilidade você pode trabalhar com uma lista dinâmica e para isso é preciso utilizar ponteiros. Qual é a sintaxe correta para criar um ponteiro de inteiro chamado listaDin, em linguagem C? A. int listaDin; B. float *listaDin; C. float listaDin; D. int *listaDin; E. integer listaDin []; =========================================================================================== QUESTÃO 2 A Pilha é uma das estruturas mais simples e mais versáteis dentre as utilizadas na computação. Antes de entrar nas nuances técnicas sobre pilhas, vamos abstrair o seu conceito para uma situação real. As funções de desempilhar e de empilhar são comumente chamadas de pop() e push(), respectivamente. Considere a seguinte pilha de números inteiros: Base -> 5, 2, 15, 3, 9, 8, 4, 12, 10, 7, 1, 11 <- Topo Sabendo que, inicialmente, o elemento 11 está no topo, execute a seguinte sequência de operações sobre a respectiva pilha: pop(); pop(); pop(); push(6); push(13); pop(); push(14); pop(); pop(); Assinale o elemento que será o próximo a ser removido se for chamada a função pop() mais uma vez. A. 7 B. 9 C. 12 D. 10 E. 8 =========================================================================================== QUESTÃO 3 As estruturas de dados homogêneas permitem a representação de diversas informações do mesmo tipo, sendo divididas em unidimensionais e multidimensionais. Frequentemente é preciso utilizá-las em conjunto com estruturas de repetição, devido ao acesso a seus elementos serem controlados por um ou mais índices. LEAL, Gislaine Camila Lapasini. Algoritmos e Lógica de Programação I. Maringá: Unicesumar, 2018. Conhecendo os conceitos envoltos em estruturas de dados homogêneas e heterogêneas, leia as afirmações que se seguem. I - Matriz é um arranjo tabular que possui apenas três dimensões. II – Registros são estruturas de dados homogêneas úteis para se armazenar informações de diferentes tipos em uma mesma variável. III – Em linguagem C, um vetor de tamanho 10 (dez) terá seu último índice igual a 9 (nove). Desse modo, é correto o que se afirma em: A. I, II e III. B. III, apenas. C. I, apenas. D. I e II, apenas. E. I e III apenas. =========================================================================================== QUESTÃO 4 Ao invés de obter o valor armazenado em uma variável, podemos opcionalmente obter seu endereço na memória. Existe um tipo específico de variável capaz de armazenar apenas endereços de memória de outras variáveis, ela é chamada de ponteiro. OLIVEIRA, Pietro Martins de; PEREIRA, Rogério de Leon. Estruturas de Dados I. Maringá: Unicesumar, 2019. Considere o código, em linguagem C, apresentado a seguir. 01 - #include 02 - #include 03 - int *p; 04 - int x; 05 - int main(){ 06 - x = 10; 07 - p = &x; 08 - x = 20; 09 - *p = 30; 10 - } Tomando por base seus conhecimentos a respeito de ponteiros e endereços de memória, bem como o código fonte recém apresentado, leia as afirmações abaixo. I – Para se realizar o acesso ao conteúdo de um ponteiro é preciso utilizar operador chamado "E-comercial" (&). II – Após executar a linha de código de número 9, o valor da variável "x" será alteado para 30. III – Ao executar a linha de código de número 8, o conteúdo da variável para a qual ponteiro "p" passará a valer 20. Sendo assim, é correto o que se afirma em: A. I e III, apenas. B. I, apenas. C. I e II, apenas. D. III, apenas. E. II e III, apenas. =========================================================================================== QUESTÃO 5 A busca em profundidade é um algoritmo utilizado para percorrer ou buscar itens dentro das estruturas de dados grafos ou árvores. Sua característica básica é percorrer todos os nós filhos ao nó raiz o mais profundo possível para somente depois retroceder. Existem várias formas de implementar uma busca em profundidade. Pela natureza de percorrer o grafo ou árvore enquanto houver filhos não visitados, uma solução natural é utilizar recursão. Outra abordagem é utilizar um algoritmo iterativo e utilizar uma pilha (LIFO) para controlar os nós a serem visitados. PANTUZA, Gustavo. Busca em profundidade. Blog pantuza.com. Disponível em: https://blog.pantuza.com/artigos/busca-em-profundidade acesso em 14 de fevereiro de 2022. Partindo da definição apresentada, avalie as asserções a seguir e a relação proposta entre elas: I. Na busca em largura utiliza-se uma fila para armazenar os vértices enquanto na busca em profundidade utiliza-se uma pilha. PORQUE II. Na busca em profundidade, um vértice é selecionado em um momento em que é visitado e marcado, em seguida, seus adjacentes são visitados e armazenados na fila. A respeito dessas asserções, assinale a opção correta. A. A asserção I é uma proposição verdadeira e a II é uma proposição falsa. B. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. C. As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I. D. As asserções I e II são proposições falsas. E. A asserção I é uma proposição falsa e a II é uma proposição verdadeira. =========================================================================================== QUESTÃO 6 Na informática, a pilha é uma estrutura onde os dados são inseridos no topo e removidos do topo. São estruturas conhecidas como Last In, First Out (LIFO), que pode ser traduzido por Último a Entrar, Primeiro a Sair. OLIVEIRA, Pietro Martins de; PEREIRA, Rogério de Leon. Estruturas de Dados I. Maringá: Unicesumar, 2019 Dado o código da função pilha_sair() e a estrutura de dado pilha com os seguintes valores: 01 - void pilha_sair(){ 02 - if(pilha.ini == pilha.fim){ 03 - printf("\nA pilha está vazia!\n\n"); 04 - system("pause"); 05 - } else { 06 - pilha.dados[pilha.fim-1]=0; 07 - pilha.fim--; 08 - } 09 - } pilha: índice: 00 01 02 03 04 05 06 07 08 09 dados: 05 25 01 81 04 06 33 01 53 33 ​pilha.ini = 0 pilha.fim = 10 Qual das alternativas a seguir corresponde ao vetor fila.dados corretamente após a execução dos comandos a seguir: pilha_sair(); pilha_sair(); A. índice: 00 01 02 03 04 05 06 07 08 09 dados: 01 81 04 06 33 01 53 33 00 00 B. índice: 00 01 02 03 04 05 06 07 08 09 dados: 05 25 01 81 04 06 33 01 53 33 C. índice: 00 01 02 03 04 05 06 07 08 09 dados: 05 25 01 81 04 06 33 00 00 00 D. índice: 00 01 02 03 04 05 06 07 08 09 dados: 05 25 01 81 04 06 33 01 00 00 E. índice: 00 01 02 03 04 05 06 07 08 09 dados: 00 00 01 81 04 06 33 01 53 33 =========================================================================================== QUESTÃO 7 Observe o código-fonte a seguir: 01 - #define MAXV 8 02 - 03 - typedef struct str_no { 04 - int id; 05 - struct str_no *proximo; 06 - } str_no; 07 - 08 - struct str_no grafo[MAXV]; 09 - 10 - void imprimeGrafoConjuntos(struct str_no g[]) 11 - { 12 - int i; 13 - struct str_no *ptr; 14 - 15 - printf("================\n Vertices = { "); 16 - for(i = 0; iproximo){ 23 - printf("<%d, %d>; ", g[i].id, ptr->id); 24 - } 25 - } 26 - printf("}\n================\n"); 27 - } Com base no código-fonte acima, pode-se dizer que o grafo representado neste programa é: A. Uma pilha de vértices. B. Uma matriz de arestas. C. Uma matriz de adjacências. D. Uma lista de adjacências. E. Um vetor de arcos. =========================================================================================== QUESTÃO 8 A matriz de adjacência é uma representação fundamental em teoria dos grafos, proporcionando uma forma estruturada de visualizar as relações entre os vértices de um grafo. Uma das principais vantagens da matriz de adjacência é sua simplicidade e facilidade de implementação, tornando-a uma escolha popular em muitas aplicações. Fonte: Elaborado pelo professor, 2024. Assinale a alternativa correta sobre qual é a definição de uma matriz de adjacência em teoria dos grafos. A. Uma matriz quadrada onde cada entrada representa o número de arestas que conectam dois vértices distintos. B. Uma matriz diagonal onde cada entrada representa o número de vértices adjacentes a um vértice específico. C. Uma matriz quadrada onde cada entrada indica o peso da aresta que conecta dois vértices distintos. D. Uma matriz simétrica onde cada entrada representa a distância entre dois vértices distintos. E. Uma matriz retangular onde cada entrada indica se há uma aresta entre dois vértices distintos. =========================================================================================== QUESTÃO 9 Listas dinâmicas, em particular as listas duplamente encadeadas, representam estruturas de dados fundamentais em ciência da computação, proporcionando flexibilidade e eficiência na manipulação de conjuntos de dados. Uma das principais vantagens das listas duplamente encadeadas é a capacidade de percorrer a lista em ambas as direções, o que facilita a implementação de algoritmos que requerem acesso bidirecional aos elementos. Fonte: Elaborado pelo professor, 2024. Assinale a alternativa que apresenta a principal vantagem de uma lista duplamente encadeada em relação a uma lista encadeada simples. A. Redução da complexidade de tempo para buscar elementos. B. Consumo de menos memória devido à presença de apenas um ponteiro por nó. C. Facilidade na implementação de algoritmos de ordenação. D. Capacidade de armazenar elementos de tipos diferentes. E. Eficiência na inserção e remoção de elementos em qualquer posição da lista. =========================================================================================== QUESTÃO 10 Existem inúmeras formas de representar computacionalmente um grafo, cada qual com suas vantagens e desvantagens em relação a tempo de implementação, uso de memória, gasto de processamento etc. Os grafos podem ser usados para modelar qualquer situação em que tenhamos coisas relacionadas entre si em pares. Os gráficos também são usados em redes sociais como o Facebook, por exemplo, cada pessoa é representada com um vértice (ou nó). Cada nó é uma estrutura e contém informações como identidade de pessoa, nome, sexo e local. OLIVEIRA, Pietro Martins de; LEON, Rogério de. Estrutura de Dados I. Maringá-PR, Unicesumar, 2019. (adaptado).   A partir dessas informações analise o grafo abaixo:   Imagem: -----------------> https://i.ibb.co/Nr9pv3j/1ad42749-ff18-4482-916b-b2130c172a14.jpg   Com base nessas informações e no conhecimento obtido na disciplina, assinale a alternativa correta:   A.  O grafo acima é um grafo orientado. Sua matriz de adjacência será a matriz inversa. B.  A figura representa um grafo desconexo orientado. C.  O vetor que representa os seus vértices é representado por: V = {a, b, c, d}. D.  Se trata de um grafo ordenado com 5 vértices e sua matriz de adjacência será de ordem 4. E.  Como o grafo possui 5 vértices, a sua matriz de adjacência terá 5 linhas e 5 colunas e cada intersecção entre linha e coluna representa um par ordenado no grafo. =========================================================================================== =========================================================================================== ===========================================================================================