Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURA DE DADOS Exercício: CCT0260_EX_A1_A10 Voltar Aluno(a): Matrícula: Data: 03/06/2014 22:23:41 (Finalizada) AULA 1 1a Questão (Ref.: 201201883210) Estão entre algumas das possíveis formas de se estruturar dados: Grafos, lista ordenada, algoritmos. Grafos, lista ordenada, vetores. Lista encadeada, vetores, algoritmos. Grafos, algoritmos, fila. Algoritmos, lista ordenada, vetores. 2a Questão (Ref.: 201202085821) 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: 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. As alternativas I e II estão corretas 3a Questão (Ref.: 201201883209) Podemos dizer que um container é: 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. A saída, 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. O que permite o armazenamento e a recuperação de dados independentemente de seu conteúdo. AULA 2 1a Questão (Ref.: 201201883421) 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 II estão corretas. Apenas as afirmações II e III estão corretas. Apenas as afirmações II está corretas. Apenas a afirmação I está correta. Apenas as afirmações I e III estão corretas. 2a Questão (Ref.: 201201950730) Assinale a opção certa. Quando não se escreve o protótipo de uma função ... A chamada da função não poderá ser feita em qualquer hipótese. A chamada da função poderá ser feita em qualquer hipótese. A definição da função deverá ser escrita, obrigatoriamente, após o programa principal. É preciso definir a função antes do programa principal. O programa não funcionará de forma alguma. 3a Questão (Ref.: 201201883563) 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 Local Global Real AULA 3 1a Questão (Ref.: 201201883067) 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 Mergesort Shellsort Bublesort Heapsort Quicksort 2a Questão (Ref.: 201201883232) Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada". 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. É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente. Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 3a Questão (Ref.: 201201883593) 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: Pesquisa binária Tabela Hash Pesquisa sequêncial Pesquisa de seleção Pesquisa ordenada AULA 4 1a Questão (Ref.: 201201883485) 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 nome e a nota obtida pelo candidato. Deseja-se que este vetor seja ordenado pela nota, em ordem decrescente. Sendo o vetor pequeno (poucos elementos), o programador responsável por desenvolver este algoritmo, escolheu um método de ordenação que executa os seguintes passos: Selecione candidato com maior nota entre todos e troque-o com o candidato que está na primeira posição do vetor; Selecione o segundo maior e troque-o com o candidato que está na segunda posição; Os passos descritos anteriormente são seguidos para a terceira nota, quarta nota e assim por diante até que reste apenas um candidato. O algoritmo utilizado pelo programador trata-se do método de ordenação denominado: Seleção Heapsort Inserção Quicksort Bolha 2a Questão (Ref.: 201201886634) 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". Seleção Bolha QuickSort Inserção MergeSort 3a Questão (Ref.: 201201883235) Marque a afirmativa correta para a "Ordenação em Listas Lineares Sequenciais". Consiste em adicionar um valor no vetor, mantendo 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. É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente. 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. AULA 5 1a Questão (Ref.: 201202085838) As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na memória. Fila Sequencial Lista Sequencial Pilha Encadeada Pilha Sequencial Lista Encadeada 2a Questão (Ref.: 201201883568) 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 é: Pilha Fila Struct Matriz Ponteiro 3a Questão (Ref.: 201201950689) Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados denominada. Lista circular. Pilha. Vetor. Fila. Lista encadeada. AULA 6 1a Questão (Ref.: 201202091785) 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 2a Questão (Ref.: 201202105161) 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. Árvores Grafos Fila Sequencial Lista Sequencial Pilha Sequencial 3a Questão (Ref.: 201202088344) 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 - 1) cout << "Pilha cheia."; else P.v[P.topo] = valor; } 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 (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; } } void empilhar(Pilha P, int valor) { if (P.topo == n - 1) cout << "Pilha cheia."; else { P.topo++; P.v[P.topo] = valor; } } AULA 7 1a Questão (Ref.: 201201883586) Analisando a figura abaixo, marque a alternativa correta que apresenta o tipo de estrutura de dados utilizado. Matriz Fila Pilha Hash Struct 2a Questão (Ref.: 201201883554) 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 incremento da variável final 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 inicio Antes da inserção deve-se fazer o decremento da variável final 3a Questão (Ref.: 201202088486) void enfileirar(Fila F, int valor) { if (F.fim == n - 1) cout << "Fila cheia\n"; else { F.fim++; F.v[F.fim] = valor; } } void enfileirar(Fila &F, int valor) { if (F.fim == n - 1) cout << "Fila cheia\n"; else { F.fim++; F.v[F.fim] = valor; } } void enfileirar(Fila &F, int valor) { if (F.fim == n - 1) cout << "Fila cheia\n"; else F.v[F.fim] = valor; } void enfileirar(Fila F, int valor) { if (F.fim == n) cout << "Fila cheia\n"; else { F.fim++; F.v[F.fim] = valor; } } void enfileirar(Fila &F, int valor) { if (fim == n - 1) cout << "Fila cheia\n"; else { fim++; v[fim] = valor; } } AULA 8 1a Questão (Ref.: 201201883597) 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 valor. Envio de inteiro. Passagem por valor. Registro. Ponteiros. 2a Questão (Ref.: 201202088496) 3a Questão (Ref.: 201202095516) 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 apontarpara 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->dado; cout << " \nValor do ?o no: " << lista->proximo->proximo->proximo->dado; cout << " \nValor do ?o no: " << lista->proximo->proximo->proximo-> proximo- >dado; cout << " \nValor do ?o no: " << lista->proximo->proximo->dado; AULA 9 1a Questão (Ref.: 201202096006) 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. Ordenar os elementos Inserir um elemento Remover um elemento Exibir um elemento Listar todos os elementos 2a Questão (Ref.: 201201883058) Qual das seguintes estruturas de dados é classificada como heterogênea? Registro Fila Pilha Loop Vetor 3a Questão (Ref.: 201201883023) 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. b) C - C - E - E - E c) E - E - C - C - E d) E - C - E - C - C a) E - C - E - C - E e) C - E - C - E - C AULA 10 1a Questão (Ref.: 201201883243) Em uma lista linear simplesmente encadeada. O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista, formando um ciclo. O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista. Cada ponteiro possui um só endereço que referencia o primeiro nó da lista. Além do campo relativo ao dado, cada nó possui dois ponteiros, Cada nó possui um só ponteiro que referencia o próximo nó da lista. 2a Questão (Ref.: 201201883380) Marque a afirmativa que represente uma Lista Circular Simplesmente Encadeada: O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista. Além do campo relativo ao dado, cada nó possui dois ponteiros, Cada nó possui um só ponteiro que referencia o próximo nó da lista. O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "último" nó da lista, formando um ciclo. Cada ponteiro possui um só endereço que referencia o "primeiro" nó da lista. 3a Questão (Ref.: 201201875116) Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para: cima e para baixo ou para frente e para trás. cima e para baixo, apenas. trás, apenas. frente e para trás, apenas. frente, apenas.
Compartilhar