Estruturas de Dados

INFO
STADISTICS
RECORDS
Title of test:
Estruturas de Dados

Description:
Estruturas de Dados

Author:
AVATAR

Creation Date:
24/08/2014

Category:
Computers
Click 'LIKE' to follow the bests test of daypo at facebook
Last comments
AVATAR
claudivan souza ( uploaded 4 years )
;
Quero aprender estrutura de dados.
Answer
Content:
Diferentes tipos de estrutura de dados são adequadas a diferentes tipos de aplicação e algumas são altamente especializadas, destinando-se a algumas tarefas específicas. Dessa forma a definição de Estrutura de Dados está expressa na alternativa: É um modo de deleção de dados em um computador. É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente. É um modo de utilização de dados nos programas de computador. É um modo de distribuição e organização de dados em uma rede de computador de modo que possam ser usados de modo eficiente. São os nomes dados as variáveis na montagem de uma rotina.
Navegadores para internet armazenam os últimos endereços visitados em uma estrutura de dados. Cada vez que um novo site é visitado, o endereço do site é adicionado na estrutura de endereços. Quando se aciona o retorno ("back"), o navegador permite que o usuário retorne no último site visitado e retira o endereço do site da estrutura de dados. Assinale a estrutura de dados mais adequada para este problema. grafo fila árvore lista pilha.
Podemos dizer que estrutura de dados é: A entrada, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema. O meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações. Uma sequência de passos computacionais que transforma uma entrada em uma saída previamente determinada. É a saída, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema. O que permite o armazenamento e a recuperação de dados independentemente de seu conteúdo.
Analise as afirmativas abaixo e selecione a alternativa correta. I Algumas aplicações da estrutura de dados grafo são: Diagrama de Entidade Relacionamento e Redes de computadores. II Árvore e lista duplamente encadeada são estruturas não lineares. III A Fila é uma estrutura não linear e a inserção de um elemento acontece ao final. IV A Lista é uma das estruturas de dados mais simples, mas não se pode ordená-la. V O uso de ponteiros é fundamental para construção de listas encadeadas. II E IV são verdadeiras II e V são verdadeiras III e V são verdadeiras I e V são verdadeiras I , II e IV são verdadeiras.
O processo de modularização de programa, utiliza funções a fim de tornar os códigos mais inteligíveis e também possibilitar uma manutenção mais fácil. Analise o código a seguir e marque a opção correta: O programa não executa corretamente, pois os protótipos estão fora da ordem em que as unções são descritas. O programa executa perfeitamente independente da ordem das funções já que existem os seus protótipos. O programa não executa corretamente pois as funções devem ser descritas antes da função main(), para que o compilador consiga recohecê-las. O programa não executa corretamente, pois o protótipo da função media não apresenta a identificação dos parâmetros, mas apenas os tipos dos mesmos. O programa executa perfeitamente, mas não mostra o valor da media já que esta função não foi chamada na função main().
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar dados ou informações na memória, de modo a otimizar o acesso a estes. Muitas vezes existem algoritmos de manipulação dados associados a estas estruturas. Verifique as seguintes sentenças: I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados. II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados. III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados. IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados. Marque a alternativa CORRETA: As alternativas I e II estão corretas Todas as alternativas estão corretas. As alternativas III e IV estão corretas. As alternativas I e III estão corretas. As alternativas II e IV estão corretas.
a Auxiliar = 101 Numero1 = 900 Numero2 = 20 Auxiliar = 111 Numero1 = 1000 Numero2 = 80 Auxiliar = 100 Numero1 = 900 Numero2 = 20 Auxiliar = 100 Numero1 = 900 Numero2 = 80 Auxiliar = 100 Numero1 = 1000 Numero2 = 20.
Observe o programa abaixo e escolha a alternativa que apresenta o retorno da função chamada pela função main(). O valor retornado corresponde ao índice mais um da variável que contem o menor número O maior número é retornado O menor número é retornado Retorna 0 porque o nome do vetor da função main(...) é diferente do nome do vetor da função descobre(...) O valor retornado corresponde ao índice da variável que contem o maior número.
As estruturas de dados em programação são muito utilizadas para tornar o acesso aos dados mais eficiente e organizado. A estrutura de dados considerada mais simples e tem como característica apresentar apenas uma dimensão é: Vetor Variável Matriz Registro Função.
O seguinte trecho de programa abaixo representa qual tipo de estrutura de ordenação? void ordenar(float v[], int n) // n é o no. de elementos em v { int i , // índice aux, // auxiliar para troca trocou = true, fim = n - 1; while (trocou) { trocou = false; // sinaliza que é falso que trocou for (i = 0; i < fim; i++) { if (v[i] > v[i+1]) { aux = v[i]; v[i] = v[i+1]; v[i+1] = aux; // sinaliza que é verdadeiro que trocou trocou = true; } // fim if } // fim for fim--; // decrementa o fim } // fim while } // fim da função Quicksort Heapsort Bublesort Mergesort Shellsort.
Em uma pesquisa sequencial a lista deve estar? ordenada somente o primeiro da lista. ordenada somente do início até a metade da lista. sempre desordenada. ordenada ou desordenada. desordenada somente da metade da lista até o final.
É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. A descrição apresentada trata-se do método denominado busca ...... binária. linear. por contagem. randômica. por comparação.
Qual a importância de se entender a "ordenação" de dados ? A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas. A ordenação é a base na qual, muitos programas são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas. A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas. A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas. A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas.
Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como: struct aluno { string nome; float nota; }; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [ 100]; Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo elemento deste vetor. vet[10].aluno.nota=5.7 ; aluno.vet[10].nota=5.7; vet[10]=aluno.5.7; aluno.vet[10]=5.7; vet[10].nota=5.7;.
O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o número de inscrição, o nome e a nota obtida pelo candidato. Este vetor está ordenado pelo número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor, comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método denominado busca: por comparação. linear. randômica. binária. por contagem.
Responda por inserção. uma mistura dos métodos de ordenação por seleção e por inserção. bubblesort. uma mistura dos métodos de ordenação por inserção e bubblesort. por seleção.
Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um vetor de nome v com n elementos. ... { int i, j, aux; for (j = 1; j < n; j++) for (i=j; i > 0 && v[i-1]> v[i]; i--) { aux = v[i-1]; v[i-1] = v[i]; v[i] = aux; } } ... Assinale o método ao qual o trecho de algoritmo pertence. Bolha Seleção Quicksort Inserção Heapsort.
Sobre estrutura de dados, identifique o que está correto afirmar. I. Pilha é uma estrutura de dados com acesso restrito aos seus elementos, uma vez que eles são colocados e retirados por um único lado e são ordenados pelo princípio LIFO (last in first out). Assim, sempre que um elemento é adicionado ou retirado seu topo é alterado. II. Pilha é o tipo de estrutura usada, por exemplo, na avaliação de expressões numéricas, na recursividade e pelos compiladores, na passagem de parâmetros para as funções. III. Registro é uma estrutura básica que permite guardar coleções de dados de diferentes tipos, sendo normalmente utilizado quando um objeto tem diferentes atributos, isto é, contém campos de diferentes tipos. IV. Lista pode conter um número qualquer de elementos, expandindo-se ou contraindo-se conforme o elementos são inseridos ou retirados. Nesse tipo de estrutura, os acessos tanto podem ser feitos sequencialmente como diretamente. V. Fila, assim como a pilha , é uma versão especial de lista, e como tal, seus elementos são ordenados pelo princípio LIFO (last in first out). I, III, IV e V. II, III, IV e V. I, III e V. I, II e III. II, IV e V.
O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de ordenação. Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos os elementos do vetor e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do elemento de menor valor e troca pelo segundo elemento e assim sucessivamente, é chamado de: Seleção Binária Inserção Hash Bolha.
Marque a afirmativa correta para a "inserção incremental". É um tipo de sequenciação por intercalação. Os pivôs são escolhidos aleatoriamente. A técnica é boa quando os dados ficam uniformemente distribuídos entre os seus compartimentos. Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. É um tipo de ordenação por intercalação.
Entre os diversos algoritmos de pesquisa existentes, certamente os mais famosos são os da pesquisa sequencial e o da pesquisa binária. A busca ou pesquisa sequencial pode ser aplicada em vetores independente destes estarem ordenados, entretanto a busca binária só se aplica em vetores ordenados. Seja o vetor A= {10,35,41,55,69,70,98}, suponha que o número 70 foi pesquisado pelo algoritmo da busca sequencial e também pelo algoritmo da busca binária, ambos algoritmos realizam testes nos elementos do vetor até achar o que procuram ou definirem que o elemento não se encontra no vetor. Sendo assim marque a alternativa que expressa o número de testes realizados pela busca sequencial e o número de testes realizados pela busca binária, respectivamente, até encontrarem o 70. 6 e 4 6 e 1 7 e 1 5 e 5 6 e 2.
Em um container do tipo Pilha: Se permite acesso aos dados armazenados pelo seu conteúdo. É possível acessar os dados armazenados por várias ordenações. Utiliza-se a ordenação First In Fisrt Out (FIFO). A ordenação utilizada não importa, uma vez que a recuperação dos dados é feita pela posição do mesmo. Utiliza-se a ordenação Last In First Out (LIFO).
A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de: loop pilha array fila ponteiro.
Existem vários tipos de estruturas de dados do tipo dinâmicas, entretanto, uma estrutura considerada simples são as listas. Pode-se implementar vários tipos de listas, entretanto, a estrutura que apresenta o conceito de LIFO é: Fila Struct Pilha Matriz Ponteiro.
Ao remover um elemento armazenado em uma pilha é necessário a atualização da variável (Topo) indicadora de posição. Qual das alternativas abaixo está correta? Após a operação de remoção incrementa a variável indicadora de posição. Antes a operação de remoção decrementa a variável indicadora de posição. Após a operação de remoção decrementa a variável indicadora de posição. Após a operação de remoção incrementa a variável indicadora de inicio. Antes da operação de remoção incrementa a variável indicadora de posição.
A estrutura de dados linear que obedece o seguinte critério: o último elemento inserido será o primeiro elemento a ser retirado (LIFO) é: fila. lista circular. árvore AVL. pilha. árvore binária.
Marque a opção que representa uma característica CORRETA a respeito da estrutura de dados pilha. Não é possível criar uma pilha utilizando vetores. O último item inserido é o primeiro item a ser retirado. O último item inserido é o último item a ser retirado. O primeiro item inserido é o primeiro a ser retirado. Os acessos aos itens ocorrem de forma aleatória.
Considere dados sendo manipulados em uma pilha sequencial em que as operações possíveis são: inserção - push(novo valor) ou remoção - pop(). Se realizarmos a seguinte sequencia de operações: push(A),push(B),push(C),pop(),pop(),push(D),pop(),pop(),pop(). Pode-se dizer que interior da pilha apresenta-se: Vazio Apenas com o dado D Com os dados A e D Com os dados A e B Apenas com o dado A.
Abaixo temos algumas afirmativas sobre o uso da estrutura pilha de forma estática e sequencial. Leia com muita atenção e assinale a opção correta. I Não existe movimentação na pilha quando inserimos ou removemos um elemento. Apenas o valor da variável que controla o topo é alterado. II Não podemos usar estruturas homogêneas, ou heterogêneas e uma variável para controlar o topo na alocação sequencial. III Um dos fatores que limita o crescimento da pilha é a quantidade de memória alocada quando usamos matrizes. IV Quando formos empilhar um elemento, é preciso verificar se a pilha não está cheia. Isso evita underflow. V Quando formos desempilhar um elemento, é preciso verificar se a pilha não está vazia. Isso evita overflow. I, IV e V estão corretas I e III estão corretas I, IV e V estão corretas II, IV e V estão corretas Somente a I está correta.
Analise as afirmativas sobre uma pilha estática e assinale a opção correta. I Ordenar é uma operação que não se faz com pilha. II Inserir dados é uma operação que se faz com a pilha. III Remover dados em qualquer posição é uma operação que se faz com a pilha. IV Verificar se a Pilha está cheia é necessário quando se deseja inserir nela. V Inicializar uma pilha significa zerar todas as variáveis do vetor. II e III estão corretas. I, II e IV estão corretas. I e II estão corretas. I e IV estão corretas. I, II e V estão corretas.
As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa pilha é conhecida na literatura como PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ). Assim estas duas funções devem implentar o algoritmo LIFO (Last In - First Out ) ou o último a entrar é o primeiro a sair. Sendo assim se aplicarmos as seguintes operações em uma PILHA vazia: PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ). Quais valores restarão na pilha Nenhum, a pilha estará vazia. 10 e 2 Apenas o 10 7 e 2 Apenas o 2.
Sabe-se que Push() coloca um elemento na pilha, Pop() remove um elemento da pilha e Top() exibe o elemento que se encontra no topo. Assinale a opção que indica o número que aparecerá após a execução das funções abaixo. Sequencia: Push() / Push()/ Pop()/ Push()/Pop()/ Top() Números que deverão ser empilhados nessa ordem: 8/ 15/ 23/ 13 / 18 15 13 18 8 23.
Um jogo de memória fornece sequências de números e o jogador deve dizer qual a sequência inversa para cada nova sequência fornecida pelo jogo. Qual a estrutura de dados mais adequada para modelar esse jogo? pilha lista árvore fila grafo.
Complete os espaços na afirmativa abaixo e assinale a alternativa que apresenta as respostas corretas: O escalonamento .................... é do tipo.................., em que o processo que chegar primeiro na fila de pronto é o escolhido para ser executado. FIFO, não-preemptivo. Por prioridades, preemptivo. LIFO, não-preemptivo. SJF (Shortest-Job-First), preemptivo. Circular, não-preemptivo.
Uma fila duplamente terminada, isto é, uma estrutura linear que permite inserir e remover de ambos os extremos é chamada de: Árvore. Boyer-Moore. Shift-and. Deque. Autômato.
As estruturas de dados podem ser do tipo estática e dinâmica. As listas são estruturas parecidas com vetores podendo ser do tipo dinâmica. Entretanto, existem várias implementações de estruturas do tipo listas. Dessa forma, a estrutura que para o acesso de um dado, este precisa estar na saída, caso contrário, precisa remover os elementos a sua frente, é chamada de: Bolha Fila Matriz Struct Pilha.
Sistemas operacionais utilizam filas para gerenciar, tarefas, processos e recursos. Qual é a ordenação dos elementos armazenados aleatoriamente em uma lista do tipo LIFO? Ordem decrescente Ordem de entrada Ordem crescente Posições aleatórias Primeiro que entra é o primeiro a sair.
Qual das alternativas a seguir pode definir uma estrutura de fila? Entrada de dados pelo início e saída pelo final. Entrada e saída de dados pelo final. Entrada e saída de dados em qualquer local. Entrada de dados pelo final e saída pelo início. Entrada e saída de dados pelo início.
Analisando a figura abaixo, marque a alternativa correta que apresenta o tipo de estrutura de dados utilizado. Pilha Hash Matriz Fila Struct.
Observe o trecho de um código abaixo struct no { int dado; struct no *proximo; }; int main() { no *lista=new no; no *pt= new no; lista->dado=1989; lista->proximo=NULL; ... //Nesse ponto, assuma que cinco nós foram alocados em uma lista simplesmente encadeada e valores atribuídos aos membros dado na sequência: 1989 2014 2011 1962 2002 e, que através do comando abaixo, o ponteiro pt passou a apontar para um nó da lista. pt->proximo=lista->proximo->proximo; Assinale a alternativa que apresenta o comando equivalente a: cout << " \nValor do ?o no: " << pt->proximo->proximo->dado; cout << " \nValor do ?o no: " << lista->proximo->proximo->proximo-> proximo->dado; cout << " \nValor do ?o no: " << lista->proximo->dado; cout << " \nValor do ?o no: " << lista->proximo->proximo->proximo->dado; cout << " \nValor do ?o no: " << lista->dado; cout << " \nValor do ?o no: " << lista->proximo->proximo->dado;.
Montei uma biblioteca popular que aceita doações sem limites. Marque a opção que especifica o tipo de lista e o tipo de alocação de memória mais adequados para este problema. fila dinâmica e alocação dinâmica de memória fila encadeada e alocação dinâmica de memória pilha dinâmica e alocação dinâmica de memória lista encadeada e alocação dinâmica de memória lista sequencial e alocação dinâmica de memória.
Tenho uma lista não ordenada de clientes em que registro apenas a matrícula, o nome, o endereço e o telefone de cada cliente. Como não tenho limites para o crescimento da minha lista, como posso implementar a inserção de um novo cliente na lista, sabendo que cada cliente é do tipo Cliente e a lista é do tipo Lista assim definidos : struct Cliente { long int matricula; string nome, endereco, tel; }; struct Lista { Cliente c; struct Lista *link; }; Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo = new Lista; novo->c = cl; novo->link = p; return novo; } Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo ; novo->c = cl; novo->link = p; return novo; } Lista insereCliente(Lista *p, Cliente cl) { Lista novo[]; novo[0].c = cl; novo[0].link = p; return novo; } Lista * insereCliente(Lista *p) { Lista *novo = new Lista; Cliente cl; novo->c = cl; novo->link = p; return novo; } Lista * insereCliente(Lista *p, Cliente cl) { Lista *novo = new Lista; novo.c = cl; novo.link = p; return novo; }.
Sou uma empresária que quer crescer e por isso, tenho que aumentar progressivamente a minha lista de clientes, sem limitar este crescimento. Assim, à medida que novos clientes são cadastrados, posso, se necessário, contratar mais e mais empregados. Marque a opção que especifica o tipo de lista e o tipo de alocação de memória mais adequados para este problema. fila dinâmica e alocação dinâmica de memória fila encadeada e alocação dinâmica de memória pilha dinâmica e alocação dinâmica de memória lista encadeada e alocação dinâmica de memória lista sequencial e alocação dinâmica de memória.
Numa Lista Encadeada, podemos afirmar que: I) Todos os nós são alocados de uma única vez. II) Os nós não são alocados contiguamente na memória obrigatoriamente. III) Os elementos de uma lista encadeada são ligados por dois ponteiros. IV) Para que possamos percorrer toda a lista, precisamos armazenar o endereço do próximo elemento para possibilitar o encadeamento. I, III e IV estão corretas I , II e III estão corretas II e IV estão corretas Só a II está correta I, II, III e IV estão corretas.
Na Alocação dinâmica, temos alguma regras a considerar. Leia atentamente as afirmativas abaixo e assinale a correta. I Alocou com new, desaloca com free II Alocou com new[], desaloca com delete III Alocou com new[], desaloca com delete[] IV Alocou com new[], desaloca com free[] V Alocou com new, desaloca com delete I e III estão corretas I e IV estão corretas I, II, III e V estão corretas II e V estão corretas III e V estão corretas.
Um apontador é uma variável que contém o endereço de outra variável. Apontadores são muito usados, em parte porque são, às vezes, a única forma de se expressar um processo de computação e, em parte, porque, normalmente, implicam um código mais compacto e eficiente que o obtido de outras formas. Considerando o uso de apontadores nas linguagens procedurais atuais, julgue os itens que se seguem com E se for errado e C se for certo. ( ) O uso de apontadores como argumentos de funções que realizem chamada por valor não permite alteração de seus conteúdos de memória na função. ( ) Com apontadores, é possível criar funções que retornem estruturas de dados complexas. ( ) Para recuperar o valor da variável apontada, basta que o apontador seja atribuído a uma variável de mesmo tipo. ( ) Arranjos de apontadores podem ser usados em funções que recebam como argumentos um número variável de cadeias de caracteres. ( ) Em geral, para que um arranjo seja percorrido por um ponteiro, para cada elemento do arranjo deve-se adicionar ao ponteiro o número de bytes que o elemento ocupa em memória. E - C - E - C - C C - E - C - E - C C - C - E - E - E E - C - E - C - E E - E - C - C - E.
Qual das seguintes estruturas de dados é classificada como heterogênea? Vetor Loop Pilha Fila Registro.
Para simular uma lista encadeada simplesmente pode se utilizar as estruturas de ponteiros. Como pode ser definida uma estrutura do tipo ponteiro? Uma estrutura que aponta para um objeto de arquivo. Um objeto que armazena dado diretamente na memória. Um objeto que contém um endereço de memória. Uma estrutura utilizada apontar erros de operações. Um objeto que não contém endereço de memória.
Tenho uma lista encadeada de processos para ler e despachar, mas obedeço a ordem de chegada, ou seja, o primeiro processo que chega é o primeiro processo a ser atendido por mim. Sabendo que cada processo é do tipo Processo, previamente definido e que a lista é do tipo Lista, assinale a opção que corretamente implementa a retirada de um processo da lista, que pode ter um ou mais processos. Considere p um ponteiro para o primeiro nó da lista e ainda, struct Lista { Processo p; struct Lista *link; }; Lista *retirar(Lista *p) { Lista *aux = p; while (p->link->link !=NULL) p = p->link; p->link = NULL; return p; } Lista retirar(Lista *p) { Lista *aux = p; p = p->link; return p; } Lista *retirar(Lista *p) { delete p; p = p->link; return p; } Lista *retirar(Lista *p) { Lista *aux = p; p = p->link; delete aux; return p; } Lista *retirar(Lista *p) { Lista *aux = p; while (p->link->link !=NULL) p = p->link; delete p->link; p->link = NULL; return p; }.
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(lista->prox)aux=aux->prox; nodo *aux=lista; while(aux->prox)aux=aux->prox; nodo *lista=aux; while(aux->prox)aux=aux->prox; nodo *aux=lista; while(aux)aux->prox=aux; nodo *aux=lista; while(aux->prox)aux->prox=aux->prox;.
Assinale a opção correta. Sobre pilha dinâmica podemos afirmar que : é recomendada para qualquer tipo de aplicação em que insere-se no final e retira-se do início. usa o critério FIFO, visto que é dinâmica. só pode ter seus dados impressos no sentido do último nó para o primeiro nó. 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.
Geralmente em algumas situações é necessário fazer a desalocação do espaço utilizado na memória. Porém, isso depende de como a reserva de uma quantidade de espaço de memória é feita, pois em alguns casos, o próprio compilador faz a desalocação. Quando o compilador não faz esta desalocação a memória foi reservada utilizando______. Declaração de matriz Declaração de função Alocação estática de memória Declaração de vetor Alocação dinâmica de memória.
As listas encadeadas podem ser elaboradas de duas formas utilizando uma técnica de encadeamento simplesmente ou encadeamento duplo. O que difere uma lista simplesmente encadeada de uma lista duplamente encadeada? Em uma lista simplesmente encadeada cada nó aponta para um único nó enquanto a lista duplamente encadeada aponta para mais de um nó. Em uma lista duplamente encadeada cada nó aponta para nó seguinte. Em uma lista duplamente encadeada cada nó aponta para nó seguinte e para o primeiro nó da fila. Em uma lista simplesmente encadeada cada nó aponta para nó seguinte e para o nó anterior. Em uma lista duplamente encadeada, cada nó aponta para um nó enquanto a lista simplesmente encadeada aponta para mais de um nó.
Em uma lista duplamente encadeada, seus nodos são compostos por campos cujos tipos podem ser de diferentes naturezas, entretanto dois de seus campos devem ser ponteiros para o mesmo tipo do nodo, são estes os ponteiros ant e prox, que apontam respectivamente para o nodo anterior e para o próximo nodo. Esta característica permite que a estrutura seja percorrida em ambos os sentidos. Assim analisando as operações a seguir: p->ant->prox=p->prox; p->prox->ant=p->ant; Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que: As operações inserem novo nodo, após o nodo apontado pelo ponteiro p. As operações possibilitam o percurso do ponteiro p da esquerda para direita. As operações possibilitam o percurso do ponteiro p da direita para esquerda. As operações removem o nodo apontado pelo ponteiro p. As operações possibilitam a busca de um nodo apontado pelo ponteiro p.
Em relação às estruturas de dados, é correto afirmar: LIFO refere-se à estrutura de dados do tipo pilha, que nada mais é do que uma lista linear, duplamente encadeada. LIFO refere-se à estrutura de dados do tipo pilha, que nada mais é do que uma lista linear, sem disciplina de acesso, onde o primeiro elemento a entrar é o último a sair. Nos sistemas operacionais, a execução dos processos concorrentes ocorre segundo os princípios da estrutura FILO. Um grafo com um único vértice e sem arestas é conhecido como dígrafo. Guardar endereço de memória em "nós", normalmente identificados por previous ou next, é uma característica presente nas listas duplamente encadeadas.
Suponha uma listagem mantida com informações sobre um equipamento a ser adquirido por uma empresa. A listagem possui as informações sobre de 10 fornecedores, descritas a seguir: próximo: um ponteiro para o próximo fornecedor da listagem; nome: nome, identificando o fornecedor; valor: preço do equipamento no fornecedor; anterior: um ponteiro para o fornecedor anterior da listagem. Sendo o fornecedor "Z" o quinto elemento desta listagem e "X" e "Y" dois outros fornecedores que não pertencem à listagem, com seus respectivos ponteiros "pZ", "pX" e "pY", considere o trecho de código abaixo. pY->proximo = pX; pX->anterior = pY; pX->proximo = pZ->proximo; pZ->proximo->anterior = pX; pZ->proximo = pY; pY->anterior = pZ; Este trecho de código é usado para inserir na listagem os fornecedores: Y, logo após o Z, e X, logo após o Y. X, antes do Z, e Y, logo após o Z. X, logo após o Z, e Y, logo após o X. Y, antes do Z, e X, logo após o Z. Y, antes do Z, e X, antes do Y.
Os registros também conhecidos como estruturas, são estruturas de dados do tipo heterogêneo, ou seja, permitem que valores de tipos diferentes possam ser armazenados em uma mesma estrutura. Analisando a estrutura abaixo, a mesma pode ser utilizada para qual tipo de estrutura de ordenação, marque a alternativa correta. struct nomeRegistro{ int info; struct nomeRegistro* ant; struct nomeRegistro* prox; }; typedef struct nomeRegistro NOMEREGISTRO; Fila Pilha Lista encadeada Lista duplamente encadeada Matriz.
Responda: uma mistura dos métodos de ordenação por inserção e bubblesort. por seleção. bubblesort. por inserção. uma mistura dos métodos de ordenação por seleção e por inserção.
Analisando o trecho do algoritmo abaixo, pode-se afirmar que se trata de uma operação de: Remoção de um elemento de uma estrutura FIFO Inserção de um elemento em uma estrutura FIFO Remoção de um elemento de uma estrutura LIFO Exibição de um elemento em uma estrutura LIFO Inserção de um elemento em uma estrutura LIFO.
Com relação as listas lineares sequenciais: I - Uma lista linear sequencial é um vetor em linguagens estruturadas, também chamado de array. II - Um elemento de uma lista linear sequencial pode ser acessado diretamente através de um índice. III - Uma lista linear sequencial pode ter elementos de um mesmo tipo, ou de tipos diferentes. Apenas as afirmações I e III estão corretas. Apenas as afirmações I e II estão corretas. Apenas a afirmação I está correta. Apenas as afirmações II está corretas. Apenas as afirmações II e III estão corretas.
Sabemos que podemos representar uma expressão de três formas, sendo que uma delas é chamada de notação polonesa reversa ( pós-fixa). Suponha que um professor de Estrutura de Dados desejasse compor a nota do bimestre com uma prova e um trabalho oral, usando pesos diferenciados para as notas. Sendo assim, usaria a média ponderada como a expressão abaixo. A única calculadora que encontrou disponível foi uma com representação pós fixa. Assinale a alternativa que apresenta a sequência que deveria ser digitada pelo professor para conseguir calcular a média de um aluno. nota1 peso1 * nota2 peso2 * peso1 peso2 + + / nota1 peso1 nota2 peso2 peso1 peso2 * * + + / nota1 peso1 * nota2 peso2 * + peso1 peso2 + / / * nota1 peso1 + * nota2 peso2 + peso1 peso2 / + * nota1 peso1 * nota2 peso2 + peso1 peso2.
No programa abaixo, diga em que área de memória serão alocados os elementos de dados y e r, respectivamente. #include using namespace std; int x, y; float media( float a, float b ) { float tmp; tmp = (a + b ) / 2.0; return ( tmp ); } int main() { float r; cout<<"Informe 2 valores: "; cin>>x>> y; r = media( x, y ); cout<<"\nMedia = "<< r<<"\n"; system ("pause"); } ( ) área de registro / área de pilha ( ) área de pilha / área de registro ( ) área de dados globais / área de pilha ( ) área de dados globais / área de registro ( ) área de registro / área de dados globais.
O que acontece quando tentamos retirar um elemento de uma pilha que já está vazia? Inclusão. Remoção. Overflow. Underflow. Ordenação.
Considere uma pilha sequencial P com capacidade para n elementos. Sabendo que P é do tipo Pilha definido a seguir, marque a opção que corretamente implementa a operação de empilhamento, considerando que o topo da pilha recebeu -1 na inicialização. struct Pilha { int v[n], topo; }; void empilhar(Pilha P, int valor) { if (P.topo == n) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } void empilhar(Pilha P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } void empilhar(Pilha &P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else P.v[P.topo] = valor; } void empilhar(Pilha &P, int valor) { if (topo == n - 1) cout << "Pilha cheia."; else { topo++; v[topo] = valor; } } void empilhar(Pilha &P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } }.
Em programação podemos utilizar um recurso que modulariza o programa chamado função. As funções precisam ser ativadas para que possam ser executadas. Para isso, é necessário chamar a função pelo seu nome e enviar, quando necessário, os valores respectivos para os parâmetros de entrada. Ao enviar os valores para os parâmetros de entrada, o programa pode fazer uma cópia deste valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos ativando a função por meio de: Envio de inteiro. Registro. Ponteiros. Passagem por valor. Envio de valor.
Com relação à struct, é correto afirmar que : Cada elemento da struct é denominado membro ou campo, sendo que a struct pode armazenar elementos de tipos diferentes ou não. Cada elemento da struct é chamado campo e cada campo deve ser, obrigatoriamente, de um tipo de dados distinto de outro campo. Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do mesmo tipo. A struct é sempre definida dentro da main. Cada elemento da struct é chamado componente.
Ao remover um elemento armazenado em uma pilha é necessário a atualização da variável (Topo) indicadora de posição. Qual das alternativas abaixo está correta? Antes a operação de remoção decrementa a variável indicadora de posição. Antes da operação de remoção incrementa a variável indicadora de posição. Após a operação de remoção incrementa a variável indicadora de posição. Após a operação de remoção decrementa a variável indicadora de posição. Após a operação de remoção incrementa a variável indicadora de inicio.
Considere uma estrutura de dados do tipo vetor. Com respeito a tal estrutura, é correto que seus componentes são caracteristicamente: Heterogêneos e com acesso indexado-sequencial. Homogêneos e de acesso aleatório por intermédio de índices. Homogêneos e com acesso indexado-sequencial. Heterogêneos e com acesso FIFO. Heterogêneos e com acesso LIFO.
As estruturas de dados permitem o uso de certos algoritmos para a ordenação dos elementos de forma a facilitar a consulta de determinado elemento. Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde um algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma ordem entre os elementos. O trecho de código abaixo descreve o algoritmo chamado: algoritmo ordena (int a[], int n){ Para i da primeira posição até a penúltima faca mínimo = i para j da posição seguinte a i até a ultima posição faça se (a[j] < a[mínimo]) mínimo =j; fim para fim para troca(a[mínimo],a[i]); fim algoritmo MergeSort Inserção Bolha Seleção QuickSort.
A técnica LIFO, utilizada em programação estruturada, é fundamentada no conceito de: Ponteiro. Pilha. Fila. Loop. Array.
Em uma pesquisa sequencial a lista deve estar? ordenada somente o primeiro da lista. ordenada ou desordenada. desordenada somente da metade da lista até o final. ordenada somente do início até a metade da lista. sempre desordenada.
O registro de ativação de uma sub-rotina é o conjunto das informações que devem/precisam ser alocadas em memória. Assinale abaixo a única opção que representa a composição destas informações. ( ) variáveis locais / valor de retorno / endereço de ponteiro ( ) endereço de retorno / variáveis locais / parâmetros passados ( ) endereço de retorno / valor de retorno / endereço de ponteiro ( ) endereço de ponteiro / variáveis locais / endereço inicial ( ) parâmetros passados / endereço inicial / endereço de retorno.
Sobre o funcionamento da busca binária, é incorreto afirmar que dividindo seu vetor em duas metades. Se o item for menor ao item que está na primeira posição do vetor, o item não foi encontrado. Se o item for menor que o item que está na metade do vetor, procure na primeira metade, ou seja, a da esquerda. Se o item for igual ao item que está na metade do vetor, o item não foi encontrado. Se o item for igual ao item que está na metade do vetor, o item foi encontrado. Se o item for maior que o item que está na metade do vetor procure na segunda metade, ou seja, a da direita.
Estão entre algumas das possíveis formas de se estruturar dados: Algoritmos, lista ordenada, vetores. Grafos, algoritmos, fila. Grafos, lista ordenada, algoritmos. Grafos, lista ordenada, vetores. Lista encadeada, vetores, algoritmos.
Suponha uma listagem, contendo número de inscrição e pontuação (ordenada pelo número de inscrição) dos candidatos para o cargo de Analista de Sistemas de uma grande empresa pública. São 1024 candidatos inscritos e o sistema implementado para consulta do resultado, permite busca binária ou busca sequencial pelo número de inscrição. O número máximo de comparações executadas se fosse utilizada a busca binária e se fosse utilizada busca sequencial, respectivamente, seria de: 1024 e 512 9 e 10 512 e 1024 10 e 10 9 e 9.
O almoxarifado de um órgão pediu ao técnico de informática que elaborasse um sistema de custeio que, para cada saída de material, considerasse o custo do mais recente que houvera dado entrada no almoxarifado. O técnico deve desenvolver um programa para tratar com uma estrutura de dados do tipo? LIFO FIFO ARRAY RECORD TABLE.
Observe a função e o vetor abaixo e acompanhe no teste de mesa até que i seja 0 , jseja 5 e a instrução vet[i]=temp; tiver sido executada. Assinale a alternativa onde estão presentes os valores corretos de v[i], aux e temp. 23 , 4, e 6 67, 4 e 23 67, 3 e 15 6 , 4 e 6 18, 2 e 67.
Ordene a coluna direita de acordo com a da esquerda, associando as características de implementação de cada: (Podem existir mais de uma opção à direita para alguma da esquerda) a - c - a - b - c - a b - b - a - c - c - c a - a - a - b - c - b a - b - a - c - c - b c - a - a - b - c - b.
Em relação as estruturas de dados, aquela que corresponde ao armazenamento em uma lista linear com a posição relativa (não contígua) na memória de dois nós consecutivos da lista é conhecida por alocação: Combinada. Encadeada. Binária. Estática. Seqüencial.
As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço reservado na memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço na memória, fora do escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a declaração desta forma estamos declarando uma variável do tipo: Inteiro Constante Global Local Real.
As filas sequenciais são estruturas de dados utilizadas em diversas aplicações, tais como fila de processo, fila de impressão, sistemas de senha etc. Entretanto, nas aplicações onde há muita movimentação de dados, inserções e remoções de dados na fila, surgem espaços ociosos que podem levar ao fenômeno chamado de esgotamento de memória. Para sanar este problema pode-se substituir a fila sequencial por: fila circular pilha circular pilha sequencial lista circular lista sequencial.
Sobre o funcionamento da busca binária, é correto afirmar que dividindo seu vetor em duas metades. Se o item for menor que o item que está na metade do vetor, o item foi encontrado. Se o item for menor que o item que está na metade do vetor, procure na segunda metade, ou seja, a da direita. Se o item for maior que o item que está na metade do vetor procure na primeira metade, ou seja, a da direita. Se o item for igual ao item que está na metade do vetor, o item foi encontrado. Se o item for igual ao item que está na metade do vetor, o item não foi encontrado.
Considere uma estrutura de dados, representada pela variável P, com procedimentos de inclusão, exclusão e consulta do próximo elemento (e) disponível na estrutura, obedecendo às seguintes propriedades: Pode-se concluir, então, que P corresponde à seguinte estrutura de dados? PONTEIRO CONJUNTO STRUCT LISTA PILHA.
Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção. void ordena (int v[], int n){ int i, j, aux; for (j = 1; j < n; j++) for (i=j; i > 0 && v[i-1]> v[i]; i--){ aux = v[i-1]; v[i-1] = v[i]; v[i] = aux; } } int ordena(float v[], float valor, int n){ for (int i = 0; i < n; i++) if (v[i] == valor) return i; return -1; } int ordena(float v[], float valor, int n) { int ini = 0, fim = n -1, meio; while (ini <= fim){ meio = (ini + fim)/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } return -1; } void ordena(int v[], int n){ int i, j, menor, aux; for (j = 0; j < n-1; j++) { for (i = j+1; i < n; i++) { if (v[i] < v[j]) { aux = v[j]; v[j] = v[i]; v[i] = aux; } } }} int ordena(float v[], float valor, int n) { int ini = 0, fim = n-1, meio; while (ini >= fim){ meio = ini/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; }.
Marque a afirmativa correta para a "inserção incremental". A técnica é boa quando os dados ficam uniformemente distribuídos entre os seus compartimentos. Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. É um tipo de sequenciação por intercalação. Os pivôs são escolhidos aleatoriamente. É um tipo de ordenação por intercalação.
A implementação da pilha de chamadas e retorno de funções é um tópico muito importante. Além disso, estratégias para o gerenciamento de outra área de memória chamada de heap são importantes para a comprensão de objetos dinâmicos como ________________. Com base na afirmativa marque a opção correta para completá-la: MATRIZES CONDICIONAIS VETORES ESTRUTURAS REPETIÇÕES.
Analisando o trecho de código abaixo, marque a alternativa correta que apresenta o que será impresso na tela do usuário. Sabe-se que na linguagem C os ponteiros são representados pelo sinal de asterisco (*), o endereço de memória pelo sinal & e a função de impressão é denominada printf. void funcao ( int *a, int *b) { int c; c = *a; a = b; *b = c; } main() { int a=2, b=3; funcao (&a, &b); printf("%d - %d \n",a,b); } 3 - 2 Não irá compilar 2 - 3 2 - 2 3 - 3.
Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados denominada. Lista encadeada. Fila. Vetor. Pilha. Lista circular.
Um órgão público adotou dois sistemas de senhas para atender os cidadãos na ordem de chegada. O sistema I atende os não idosos. O sistema II atende os idosos. Nessa situação: tanto o sistema I, quanto o II, adotam o esquema FIFO de organização de dados. o sistema I, adota o esquema LIFO de organização de dados e o II, o esquema LIFO. tanto o sistema I, quanto o II, adotam o esquema LIFO de organização de dados. tanto o sistema I, quanto o II, adotam o esquema vetor de organização de dados. o sistema I, adota o esquema LIFO de organização de dados e o II, o esquema FIFO.
Qual o valor da variável a ao final da execução do trecho de programa a seguir? int main() { int a, b, *p; a=4; b = 2; p = &a; a++; *p = a + b; (*p)++; (*p) += a; cout << "\n a = " << a << endl; return(0); } 16 5 7 4 8.
Com relação as afirmações abaixo, a respeito de lista lineares, assinale as Verdadeiras e as Falsas. Indique a alternativa que representa a sequência correta: ( ) Nas listas encadeadas não precisamos saber previamente o número de elementos a serem armazenados. ( ) Podemos aumentar e diminuir o tamanho da lista encadeada quando quisermos, enquanto que a lista sequencial não. ( ) Quando o número de acessos randômicos a uma área de armazenamento é muito maior que o número de inserções e remoções de elementos armazenados, a organização dessa área de armazenamento por meio de uma lista encadeada resulta em desempenho melhor que o apresentado por organização feita usando uma lista linear. F V F V V F F V V V V V V F V.
Marque a afirmativa que represente uma concatenação em listas. Consiste em dividir a lista em duas outras listas. A quantidade de nós que cada lista terá, depende da necessidade. Organizar os dados da lista em ordem crescente ou decrescente. Intercalar a ordem dos dados da lista do final para o início, atualizando a lista. Alterar a ordem dos dados da lista do final para o início, atualizando a lista. Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista resultante.
É correto afirmar sobre o funcionamento da busca sequencial. Os elementos são pesquisados aleatoriamente. Pior caso: o elemento está no último índice do meu vetor. Os elementos são pesquisados de acordo com o índice. Melhor caso: o elemento está no último índice do meu vetor. Os elementos são pesquisados de acordo com o índice. Pior caso: o elemento está no primeiro índice do meu vetor. Os elementos são pesquisados de acordo com o índice. Melhor caso: o elemento está no meio do meu vetor. Os elementos são pesquisados de acordo com o índice. Pior caso: o elemento está no último índice do meu vetor.
As estruturas de dados são importantes para a programação porque facilitam a pesquisa, pois permitem a ordenação dos dados de forma crescente ou decrescente. Dessa forma, assinale a alternativa correta que define um tipo de dado estruturado. Permitem agregar mais do que um valor em uma variável, existindo uma relação estrutural entre seus elementos. São tipos de dados indivisíveis. Consiste da definição do conjunto de valores (denominado domínio) que uma variável pode assumir ao longo da execução de um programa. Podem armazenar apenas um valor de cada vez, se algum valor for atribuído o anterior é apagado. Também são denominados tipos primitivos, não é possível decompor em partes menores.
Determinados tipos de estrutura de dados, são utilizados para implementar um algoritmo de escalonamento de processos do sistema operacional UNIX, chamado Round Robin, onde cada processo ganha uma fatia de tempo. Esse tipo de estrutura de dados é chamado de: Pilha Lista encadeada Método Bolha Tabela Hash Lista duplamente encadeada.
O método de ordenação que compara pares de chaves de ordenação, trocando os elementos correspondentes caso estejam fora de ordem é o método: Heapsort QuickSort inserção seleção bolha.
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada". Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio. Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos. É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente. Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio. Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
O registro de ativação de uma subrotina é o conjunto das informações que devem/precisam ser alocadas em memória. Assinale abaixo a única opção que representa a composição destas informações. ( ) parâmetros passados / endereço inicial / endereço de retorno ( ) endereço de ponteiro / variáveis locais / endereço inicial ( ) variáveis locais / valor de retorno / endereço de ponteiro ( ) endereço de retorno / valor de retorno / endereço de ponteiro ( ) endereço de retorno / variáveis locais / parâmetros passados.
Marque a afirmativa correta para a "Busca ou pesquisa binária". É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente. Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos. Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio. Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio. Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
Em um container do tipo Pilha: Utiliza-se a ordenação Last In First Out (LIFO). Se permite acesso aos dados armazenados pelo seu conteúdo. A ordenação utilizada não importa, uma vez que a recuperação dos dados é feita pela posição do mesmo. É possível acessar os dados armazenados por várias ordenações. Utiliza-se a ordenação First In Fisrt Out (FIFO).
Com a utilização das estruturas de dados e seus tipos, em algumas situações é imprescindível a criação de funções que façam determinada verificação ou ação nestas estruturas. Dessa forma, analise a função abaixo e marque corretamente a alternativa que descreve as funcionalidades desta. int funcao(float v[], float vl, int n) { for (int i = 0; i < n; i++) if (v[i] == vl) return i; return 1; } Retorna o valor de vl se o valor n foi encontrado. Retorna a posição de v se o valor vl foi encontrado. Resulta em erro, se o valor de vl não estiver dentro de v. Retorna 1 se o valor de n foi encontrado. Retorna 1 se o valor de vl estiver dentro de v.
Observe o algorítmo a seguir, onde ocorre a passagem de parâmetro por valor e por referência, respectivamente, de ITALIA para FIAT e de FRANCA para HONDA. Ao final do processamento, as variáveis ITALIA e FRANCA terão, respectivamente, os seguintes valores: 25 e FALSO 85 e FALSO 97 e FALSO 97 e VERDADEIRO 85 e VERDADEIRO.
Se a e b são variáveis inteiras (int) e p1 e p2 ponteiros para int, quais das seguintes expressões de atribuição está errada? *p2 = *p1; *p2 = &b; a = (*p1 + *p2)/b+1; p1 = &a; b = *p2;.
Podemos dizer que um container é: A entrada, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema. Uma sequência de passos computacionais que transforma uma entrada em uma saída previamente determinada. O meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações. A saída, que satisfaz a quaisquer restrições impostas pelo problema, necessária para se calcular uma solução do problema. O que permite o armazenamento e a recuperação de dados independentemente de seu conteúdo.
Marque a opção que representa uma característica CORRETA a respeito da estrutura de dados pilha. O último item inserido é o primeiro item a ser retirado. Não é possível criar uma pilha utilizando vetores. O último item inserido é o último item a ser retirado. O primeiro item inserido é o primeiro a ser retirado. Os acessos aos itens ocorrem de forma aleatória.
Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde um algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma ordem entre os elementos. Marque a alternativa correta que cita o algoritmo cuja descrição é: "considera cada elemento uma vez inserindo-o em seu lugar correto entre os elementos que já estão em ordem". E o seu passo a passo pode ser descrito como: "o elemento é inserido entre os ordenados movendo-se os elementos maiores que ele uma posição para a direita e posteriormente inserindo-o na posição vaga". Inserção Bolha Seleção MergeSort QuickSort.
Considerando que a lista a seguir, encontra-se criada na memória, o que será exibido pelo trecho de programa a seguir: aux = inicio; while (aux -> proximo != NULL) aux = aux -> proximo; novo = new tipoNo; novo -> valor = 'F'; novo -> proximo = NULL; aux -> proximo = novo; aux = inicio; while (aux != NULL){ cout << aux -> valor << " "; aux = aux -> próximo; } H K M F H NULL H K M F.
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função: Por memória e por disco. Por reforço e por referência. Por valor e por referência Por inferência e por valor. Por teste e por reforço.
Para consultarmos uma estrutura de dados, normalmente, empregamos um tipo de pesquisa de dados. O trecho de programa a seguir refere-se a uma pesquisa por um elemento único (sua primeira ocorrência), em um conjunto de elementos de dados armazenado em uma estrutura de acesso indexado e aleatório. Selecione a opção correspondente ao algoritmo utilizado, no programa, para a referida pesquisa: int busca(float v[], float valor, int n) { int ini = 0, fim = n -1, meio; while (ini <= fim) { meio = (ini + fim)/2; if (v[meio] == valor) return meio; if (valor < v[meio]) fim = meio -1; else ini = meio+1; } return -1; } pesquisa de cadeias pesquisa indexada pesquisa binária pesquisa cadeias indexada pesquisa sequencial.
Em que aplicação se pode utilizar a "ordenação"? Busca, Par mais próximo, Unicidade de elementos, Distribuição de frequência, Seleção e Casco conexo. Busca, Par mais próximo, Unicidade de elementos, Distribuição de frequência, Seleção e Casco convexo. Busca, Par mais endógeno, Unicidade de elementos, Distribuição de frequência, Seleção e Casco convexo. Busca, Par mais próximo, Unicidade de elementos, Distribuição de ausência, Seleção e Casco convexo. Busca, Par mais próximo, Unicidade de elementos, Distribuição de ausência, Seleção e Casco conexo.
Pilha é uma estrutura de dados Que pode ser implementada somente por meio de vetores. Cujo acesso aos seus elementos ocorre de forma aleatória. Cujo acesso aos seus elementos segue a lógica LIFO. Que pode ser implementada somente por meio de listas. Cujo acesso aos seus elementos segue tanto a lógica LIFO quanto a FIFO.
No contexto de estrutura de dados, uma pilha é: um tipo de lista linear em que as operações de inserção são realizadas em uma extremidade e as operações de remoção são realizadas em outra extremidade. um tipo de lista linear em que as operações de inserção e remoção são realizadas aleatoriamente. uma lista do tipo LILO. uma lista do tipo FIFO. um tipo de lista linear em que as operações de inserção e remoção são realizadas na extremidade denominada topo.
O que acontece ao se inserir uma informação quando já usamos toda a área disponível do vetor (topo = fim)? ordenação underflow inclusão remoção overflow.
Analise as seguintes afirmações: I. Na Passagem por Referência, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente. II. Uma recursão consiste em uma função chamar ela mesma com argumentos sempre do mesmo valor. III. Considerando-se o escopo das variáveis, é correto afirmar que uma variável é dita global quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência. Uma variável é dita local quando esta passagem se dá apenas por valor. Indique a opção que contenha todas as afirmações verdadeiras. somente a alternativa II. I e II. I e III. somente a alternativa I. II e III.
Em relação a estruturas de dados, avalie a correspondência existente entre as estruturas de dados Lineares e Não Lineares com suas respectivas coleções de dados. a1, b1, c2, d2. a2, b2, c1, d2. a1, b2, c1, d1. a1, b1, c2, d1. a2, b1, c2, d1.
Com base nos principais elementos fornecidos pela biblioteca C++ padrão, marque a opção correta que resume todos os elementos dessa biblioteca: Listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. Iteradores, vetores, listas, pilhas, filas, deques e filas com prioridade, mapas. Vetores, listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, iteradores, vetores, listas, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas. Iteradores, pilhas, filas,conjuntos e multiconjuntos, deques e filas com prioridade, mapas.
A armazenagem de dados pode ocorrer temporariamente em uma variável, um vetor ou em uma estrutura chamada Struct na linguagem C e C++. Como se procede a atribuição de valor a um determinado campo de uma estrutura do tipo Struct? Nome da estrutura vírgula tipo do campo Nome da estrutura ponto tipo do campo Nome da estrutura ponto nome do campo Nome da estrutura seta nome do campo Nome da estrutura seta tipo do campo.
Observe o trecho de código em C/C++ a seguir. O laço for preenche os dados dos candidatos no vetor de selecionados. (adaptado para C/C++) 1.struct Candidato { 2. char nome[15]; 3. double nota; 4. }; 5. 6.int main(){ 7. struct Candidato selecionados[5]; 8. int i; 9. for (i=0; i<5; i++){ 10. cout << "Nome: "; 11. cin.get();cin.get(***********,15); 12. cout << "Nota: "; 13. cin >> ***********; 14. } 15. ... 16.} Observe que o código no interior dos comandos das linhas 11 e 13 foi substituido por ***********. Para que este programa compile e execute sem erros, os asteriscos nas linhas 11 e 13 devem ser substituídos respectivamente por: Candidato.nome[i] Candidato.nota[i] selecionados.nome[i] selecionados.nota[i] selecionados[i].nome selecionados[i].nota Candidato[i].nome Candidato[i].nota nome[i] nota[i].
Para a criação de uma Fila seqüencial basta iniciar as variáveis de início e final, ou seja, apontá-las para as posições iniciais do vetor. O que alteraria na rotina de inserir se a variável final fosse inicializada com o valor -1 (menos um): Após a inserção deve-se fazer o decremento da variável final Antes da inserção deve-se fazer o incremento da variável final Após a inserção deve-se fazer o incremento da variável final Antes da inserção deve-se fazer o decremento da variável final Após a inserção deve-se fazer o incremento da variável inicio.
O resultado de um concurso foi armazenado por um programador em um vetor, onde cada elemento (descrito pela struct Candidato) possui a informação da matrícula e nota de cada candidato, conforme descrito a seguir. Deseja-se que o vetor com os resultados fique ordenado em ordem decrescente pela nota. O programador pretende usar o algoritmo de busca descrito a seguir, porém precisa de ajuda no trecho contendo ********. Indique a opção que contém a solução que completa as linhas 1, 3 e 7 do algoritmo. ... struct Candidato { char mat[10]; float nota; }; ... 1.void ordenaSelecao (******** v[], int n) { 2. int i, j, maior; 3. ******** aux; 4. for (j = 0; j < n-1; j++) { 5. maior = j; 6. for (i = j+1; i < n; i++) 7. if (********) 8. maior = i; 9. aux = v[j]; 10. v[j] = v[maior]; 11. v[maior] = aux; 12. } 13.} 1. struct Candidato 3. struct Candidato 7. v[i].nota > v[maior].nota 1. int 3. int 7. v[i] < v[maior] 1. int 3. int 7. v[i] > v[maior] 1. float 3. float 7. v[i] < v[maior] 1. struct Candidato 3. struct Candidato 7. v[i].nota < v[maior].nota.
A declaração de variáveis na programação é o ato de reservar um espaço na memória para poder armazenar valores de um determinado tipo. Essas variáveis podem ser classificadas como variáveis locais e globais. Sendo assim, qual das situações abaixo representa melhor o conceito das variáveis globais. Em duas funções diferentes temos duas variáveis também diferentes com o mesmo nome apresentando o mesmo valor. Em uma função "resul" tem-se uma variável ali declarada por 'T' que recebe o valor inteiro 5. Ao tentar chamar esta variável em outra função é mencionado um warning. Se dentro de uma função "mostra" declararmos uma variável 'R' com um determinado valor poderemos imprimir esta variável em qualquer outra função do programa mostrando o valor atribuído na função "mostra". Se modificarmos o valor da variável 'Y' na função "soma", e depois imprimirmos na tela esta variável em outra função, onde tambem está declarada a variável 'Y', será acusado um erro de compilação. Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa.
Um programador recebeu a tarefa de construir um programa que receba uma cadeia de caracteres e verifique se esta cadeia de caracteres é um PALÍNDROME, sabendo-se que um PALÍNDROME apresenta a mesma sequência de caracteres da esquerda pra direita, quanto da direita para esquerda, marque a opção que possui a estrutura de dados mais adequada a este programa. Fila Sequencial Lista Sequencial Grafos Árvores Pilha Sequencial.
Um aluno, sempre que tinha um tempo sobrando, estudava o conteúdo da disciplina de Estrutura de Dados. Ao pesquisar sobre as funções usadas por Pilhas e Filas dinâmicas, percebeu que existe uma função que tanta pode ser usada com Pilha quanto por Fila. Assinale a alternativa onde se encontra a finalidade dessa função. Inserir um elemento Listar todos os elementos Ordenar os elementos Exibir um elemento Remover um elemento.
Observe a struct, definida globalmente, e um trecho de uma função que manipula uma Lista Duplamente Encadeada. struct listaDE { int info; struct listaDE* ant; struct listaDE* prox; }; ... listaDE* novo = new listaDE; novo->info = valor; novo->prox = LISTA; novo->ant = NULL; Assinale a alternativa que apresenta o protótipo dessa função listaDE *insereFim(listaDE *LISTA, int valor); listaDE *busca (listaDE *LISTA, int valor); listaDE *remove(listaDE *LISTA, int valor); void exibeIpF(listaDE *LISTA); listaDE *insereInicio(listaDE *LISTA, int valor);.
Report abuse Terms of use
We use cookies to personalize your experience. If you continue browsing you will be accepting its use. More information.