Buscar

Atividades Est Dados

Prévia do material em texto

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. 
		
	
	III e V são verdadeiras 
	
	II e V são verdadeiras 
	
	I e V são verdadeiras 
	
	
	Podemos dizer que estrutura de dados é: 
		
	
	Uma sequência de passos computacionais que transforma uma entrada em uma saída previamente determinada. 
	
	A entrada, 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. 
	
	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.
	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.
		
	
	
	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 a afirmação I está correta.
	
	Apenas as afirmações I e III estão corretas.
	
	Apenas as afirmações I e II estão corretas.
	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;
}
		
	
	Resulta em erro, se o valor de vl não estiver dentro de v.
	
	Retorna -1 se o valor de n foi encontrado.
	
	Retorna a posição de v se o valor vl foi encontrado.
	
	
	Marque a afirmativa correta para a "Busca ou pesquisa binária". 
		
	
	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. 
	Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim, o algoritmo que realiza a busca em vetores e que exige acesso aleatório aos elementos do mesmo e que parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento que se deseja com o elemento do meio do vetor, é chamado de:
		
	
	Tabela Hash
	
	Pesquisa sequêncial
	
	Pesquisa binária
	
	
	Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada". 
			
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
		
	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.
		
	
	Heapsort
	
	Inserção
	
	Bolha
	Marque a afirmativa correta para a "inserção incremental". 
		
	
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
	
	
	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?
		
	
	Apenas o 2 
	
	10 e 2 
	
	Nenhum, a pilha estará vazia. 
	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
		
	
	
	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 + / 
	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. 
		
	
	Por prioridades, preemptivo.
	
	SJF (Shortest-Job-First), preemptivo.
	
	LIFO, não-preemptivo.
	
	FIFO, não-preemptivo.
	
	Circular, não-preemptivo.
		
	
	Seja uma lista encadeada cujos nodos são formados pelo seguinte tipo de dado:
struct empregado{
 long int matricula;
 float salario;
 empregado *proximo;
};
 
Suponha que o ponteiro pont tenha o endereço de um nodo da lista, o qual se deseja atribuir um novo valor para o campo salario. Marque a alternativa que corretamente altera o valor do campo salario para 5000.00.
		
	
	salario=5000.00;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->dado; 
	
	cout << " \nValor do ?o no: " << lista->proximo->proximo->proximo-> proximo->dado; 
	
	cout << " \nValor do ?o no: " << lista->proximo->proximo->dado; 
	
	cout << " \nValor do ?o no: " << lista->proximo->proximo->proximo->dado; 
	
	cout << " \nValor do ?o no: " << lista->proximo->dado; 
		
		Qual das seguintes estruturas de dados é classificada como heterogênea?
		Quest.: 1
	
	
	
	
	
	Registro correta
	
	
	
	
	
	
	
	
	
	
	
	
		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.
		Quest.: 2
	
	
	
	
	
	Inserir um elemento
	
	
	Listar todos os elementos
	
	
	Ordenar os elementos
	
	
	Exibir  um elemento correta
	
	
	Remover um elemento
		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. 
		Quest.: 3
	
	
	
	
	
	Também são denominados tipos primitivos, não é possível decompor em partes menores.
	
	
	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.
	
	
	São tipos de dados indivisíveis.
	
	
	Permitem agregar mais do que um valor em uma variável, existindo uma relação estrutural entre seus elementos. Correta
	
	
	
		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______.
		Quest.: 1
	
	
	
	
	
	Alocação estática de memória
	
	
	Declaração de vetor
	
	
	Declaração de função
	
	
	Declaração de matriz
	
	
	Alocação dinâmica de memória correta
		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
		Quest.: 2
	
	
	
	
	
	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); correta
		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? 
		Quest.: 3

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes