Prévia do material em texto
1
Questão
O que é estrutura de dados?
É um conjunto de comandos para uma tarefa específica referenciada por um nome no algoritmo principal, retornando um determinado valor no seu próprio nome.
É uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais devendo ser executadas mecânica ou eletronicamente em um intervalo de tempo finito e com uma quantidade de esforço finita.
É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente.
É um conjunto de técnicas de programação.
É uma forma determinada de armazenamento de dados em um banco de dados.
Respondido em 06/05/2021 10:04:36
2
Questão
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 II e IV estão corretas.
As alternativas I e III estão corretas.
As alternativas I e II estão corretas
Respondido em 06/05/2021 10:04:43
3
Questão
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 utilização de dados nos programas de computador.
São os nomes dados as variáveis na montagem de uma rotina.
É 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 distribuição e organização de dados em uma rede de computador de modo que possam ser usados de modo eficiente.
Respondido em 06/05/2021 10:04:51
4
Questão
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
Pilha Encadeada
Lista Sequencial
Pilha Sequencial
Lista Encadeada
Respondido em 06/05/2021 10:04:56
5
Questão
Para organizar as fotos de minha família com os ancestrais de várias gerações, minha filha usou uma estrutura de dados que é ..... Assinale a opção certa.
árvore
fila
pilha
grafo
lista
Respondido em 06/05/2021 10:05:01
6
Questão
Preciso cadastrar todos os interessados em meu novo curso de programação. Qual a estrutura de dados mais adequada para modelar este problema, visto que não há qualquer preocupação com ordem de chegada ou saída de aluno da turma.
Grafo
Árvore
Lista
Pilha
Fila
Respondido em 06/05/2021 10:05:07
7
Questão
Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para sua execução assinale a alternativa que representa a resposta final.
cin >> a;
cin >> b;
cin >> c;
cin >> d;
cout << a;
cout << b;
cout << c;
cout << d;
cout << d;
cout << c;
cout << b;
cout << a;
Após a impressão dos valores pela ordem teremos duas filas.
Após a impressão dos valores pela ordem teremos uma pilha e uma fila.
Após a impressão dos valores pela ordem teremos uma fila e uma pilha.
Após a impressão dos valores pela ordem teremos uma fila e um grafo.
Após a impressão dos valores pela ordem teremos duas pilhas.
Respondido em 06/05/2021 10:05:11
8
Questão
Estão entre algumas das possíveis formas de estruturas de dados:
cout, Funções, vetores
Listas, vetores, cin
Árvores binárias, pilhas, vetores
Grafos, funções, fila
Árvores binárias, pilhas, algoritmos
1
Questão
Estão entre algumas das possíveis formas de se estruturar dados:
Lista encadeada, vetores, algoritmos.
Algoritmos, lista ordenada, vetores.
Grafos, algoritmos, fila.
Grafos, lista ordenada, vetores.
Grafos, lista ordenada, algoritmos.
Respondido em 06/05/2021 10:05:57
2
Questão
Podemos dizer que estrutura de dados é:
É 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.
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.
Respondido em 06/05/2021 10:05:59
3
Questão
Das estruturas de dados a seguir aquela que NÃO é uma estrutura linear é :
Grafo.
Pilha.
Lista.
Vetor.
Fila.
Respondido em 06/05/2021 10:06:04
4
Questão
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 de 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 I e III estão corretas.
As alternativas III e IV estão corretas.
As alternativas I e II estão corretas
As alternativas II e IV estão corretas.
Respondido em 06/05/2021 10:06:08
5
Questão
A forma correta para imprimir o valor do último elemento de um vetor v com n posições é:
cout << v[n-1];
cout << v[n+1];
cout << v[n];
cout << v[ultimo];
cin >> v[-1];
Respondido em 06/05/2021 10:06:17
6
Questão
Assinale a alternativa correta sobre tipos abstratos de dados:
Um tipo abstrato de dados é composto por um modelo de dados e um conjunto de operadores definidos sobre esses dados.
Um tipo abstrato de dados descreve, além do que se pode fazer com os dados, como as operações serão efetivamente implementadas.
Um tipo abstrato de dados é um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente.
Um tipo abstrato de dados deve sempre ser representado por meio dos recursos específicos de uma linguagem de programação.
É fundamental que os tipos abstratosde dados proponham um conjunto eficiente de algoritmos para realização de suas operações.
Respondido em 06/05/2021 10:06:20
7
Questão
Qual estrutura de dados é mais adequada para armazenar a estrutura do diretório do sistema de arquivos de um sistema operacional?
Árvore
Pilha
Grafo
Lista
Fila
Respondido em 06/05/2021 10:06:23
8
Questão
É um exemplo de TAD Não Linear:
Grafos
Filas de Prioridade
Filas
Listas
Pilhas
AULA 2 - FUNÇÕES
1
Questão
O que será mostrado na tela pelo programa abaixo ?
#include < iostream >
using namespace std;
int a,b;
void dobro(int x){ //x passado por valor
x=2*x;
}
int triplo(int y){ //y passado por valor
return 3*y;
}
void altera(int x, int &y) { //x passado por valor e y passado por referencia
x=x+a;
y=x+b;
}
int main (){
a=2;
b=3;
dobro(a);
b=triplo(b);
altera(a,b);
cout<< a << " e " << b << endl;
}
2 e 9
2 e 13
4 e 9
4 e 12
9 e 16
Respondido em 06/05/2021 10:06:56
2
Questão
Considere o trecho de um programa escrito em C++.
void func1 (bool x, int ini, int fim) {
for ( int y=ini; y != fim ; y++) {
x = !x;
if (x)
cout << y << endl;
else
cout << -y << endl;
}
}
int main() {
func1(false, 1, 7);
}
Marque a opção correta que mostra o que é impresso na tela.
1, -2, 3, -4, 5, -6
1, -2, -3, -4, -5, -6
-1, -2, -3, -4, -5, -6
1, 2, 3, 4, 5, 6
-1, 2, -3, 4, -5, 6
Respondido em 06/05/2021 10:06:59
3
Questão
Considere o trecho de um programa escrito em C++.
int func1 (int vtx[], int tam) {
int soma=0;
for (int i=0 ; i < tam; i++) {
if (i % 2 !=0)
soma += vtx[i];
}
return soma;
}
int main() {
int vt[5] = {10,20,30,40,50};
cout << func1 (vt,5);
}
Marque a opção correta que mostra o que é impresso na tela.
20
40
60
30
50
Respondido em 06/05/2021 10:07:05
4
Questão
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 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.
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.
Em duas funções diferentes temos duas variáveis também diferentes com o mesmo nome apresentando o mesmo valor.
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.
Respondido em 06/05/2021 10:07:10
5
Questão
No programa abaixo em C++, que sequência de valores serão impressos ? int x; x = 15; if (x > 0) { int x; x = 25; cout << x << endl; } cout << x << endl;
25 e 25
15 e 15
15 e 25
0 e 5
25 e 15
Respondido em 06/05/2021 10:07:13
6
Questão
Considere o trecho de um programa escrito em C++ :
int func1 (long num) {
int n, na=1;
while (num / 10 != 0){
na += 1;
num /= 10;
}
return na;
}
main() {
cout << func1 (132041);
}
Marque a opção correta que mostra o que é impresso na tela.
1
4
2
6
3
Respondido em 06/05/2021 10:07:18
7
Questão
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.
Envio de valor.
Passagem por valor.
Ponteiros.
Registro.
Respondido em 06/05/2021 10:07:24
8
Questão
Considere o trecho de um programa escrito em C++.
int func1 (int n1, int n2) {
int aux = n1 % n2;
while ( aux != 0) {
n1 = n2;
n2 = aux;
aux = n1 % n2;
}
return n2;
}
int main() {
cout << func1 (27, 18);
}
Marque a opção correta que mostra o que é impresso na tela.
27
3
9
18
6
1
Questão
Considere o trecho de um programa escrito em C++ :
int func1 (int n1, int n2) {
int soma=0;
for ( ; n1 < n2 ; n1 += 2) {
soma += n1;
}
return soma;
}
main() {
cout << func1(1.20);
}
Marque a opção correta que mostra o que é impresso na tela.
104
102
90
80
100
Respondido em 06/05/2021 10:07:42
2
Questão
#include < iostream >
using namespace std;
void SOMA(float a, int b) {
float result = a+b;
cout << "A soma de " << a << " com " << b << " é: " << result;
}
int main()
{
int a;
float b;
a = 10; b = 12.3;
SOMA(b,a);
}
A função SOMA acima possui as seguintes características :
Retorna valor e possui parâmetros.
Retorna valor.
Retorna valor e não possui parâmetros.
Não retorna valor e possui parâmetros.
Não retorna valor e não possui parâmetros.
Respondido em 06/05/2021 10:07:48
3
Questão
Diga, para o trecho do programa abaixo, qual a opção que representa a saída em tela. Considere que o programa será compilado sem erros, e irá executar também sem problemas.
void troca (int x, int *y){
int tmp;
tmp = *y;
*y = x;
x = tmp;
}
int main() {
int a = 13, b = 10;
troca( a, &b );
cout<<"Valores: "<< a<<"\t"<< b<< endl;
system("pause");
}
Valores: 13 13
Valores: 31 01
Valores: 13 10
Valores: 10 10
Valores: 10 13
Respondido em 06/05/2021 10:07:50
4
Questão
Assinale a opção CORRETA. O protótipo da função que permitirá calcular o volume de um paralelepípedo com medidas a, b e c de acordo com o trecho da chamada : cout << "Volume = " << volume(a,b,c);
float volume (float, float, float);
void volume (float, float, float &);
float volume (float, float);
float volume (float ; float ; float);
void volume (float , float);
Respondido em 06/05/2021 10:07:55
5
Questão
1) O que será impresso pela função Eureka ? Assinale a opção correta.
void Eureka()
{
for (int i = 1; i <= 10; i++)
if (i % 2 == 0)
cout << i << " ";
else
if (i % 7 == 0)
return;
}
2 4 6
2 4 6 8
2 4 6 8 10
Nada é impresso, pois a função não compila. A função não deveria usar return, pois não está de acordo com o uso de void.
Nada é impresso, pois a função não compila. Para a função compilar, deveria ter int no lugar de void, já que há return na função.
Respondido em 06/05/2021 10:08:00
6
Questão
Qual será a saída para o seguinte trecho de código?
void FUNC1()
{
int B = -100;
cout << "Valor de B dentro da função FUNC1: " << B;
}
void FUNC2() {
int B = -200;
cout << "Valorde B dentro da função FUNC2: " << B;
}
int main() {
int B = 10;
cout << "Valor de B: " << B;
B = 20;
FUNC1();
cout << "Valor de B: " << B;
B = 30;
FUNC2();
cout << "Valor de B: " << B;
}
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -400 Valor de B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -200 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 20
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 10 Valor de B dentro da função FUNC2: -200 Valor de B: 30
Respondido em 06/05/2021 10:08:05
7
Questão
Considere a função a seguir e a chamada da mesma efetuada no programa principal abaixo. Indique a opção que contem o que será impresso.
int executar (int x, int &y) {
x = y * 2;
y = ++x;
return x + y;
}
int main () {
int a=2, b=2, c=2;
c = executar (a, b);
cout << a << ", " << b << ", " << c;
}
4, 5, 9
3, 2, 8
2, 2, 9
3, 5, 8
2, 5, 10
Respondido em 06/05/2021 10:08:11
8
Questão
Blocos únicos de códigos que realizam diversas tarefas distitintas são de dificil manutenção. Portanto, utiliza-se a tecnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas. Esta técnica, também chamada de modularização, tem como principal elemento:
As Filas
As funções
Os Vetores
As Estruturas de Dados
Os Grafos
AULA 3 – ESTRUTURAS HETEROGÊNEAS
1
Questão
Em C++, quando uma variável é declarada como uma struct, o acesso para atribuição e leitura dos membros (campos) deste registro se dá pelo operador :
-> (seta).
* (asterisco).
& (e comercial ou eitza).
∙ (ponto).
, (vírgula).
Respondido em 06/05/2021 10:08:45
2
Questão
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 primeiro elemento deste vetor.
aluno.vet[10].nota=5.7;
vet[10]=aluno.5.7;
vet[10].nota=5.7;
aluno.vet[10]=5.7;
vet[10].aluno.nota=5.7 ;
Respondido em 06/05/2021 10:08:49
3
Questão
Qual das seguintes estruturas de dados é classificada como heterogênea?
Registro
Fila
Loop
Pilha
Vetor
Respondido em 06/05/2021 10:08:56
4
Questão
Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
liv->preco = 30.70;
Livro->liv.codigo = 12345;
Livro.codigo = 12345;
Livro.liv.codigo = 12345;
liv.preco = 30.70;
Respondido em 06/05/2021 10:09:01
5
Questão
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 media; }; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [ 10]; Marque a alternativa em que é atribuída de forma correta a media 6.0 para o quarto elemento deste vetor.
vet[3].aluno=6.0;
aluno[3].10=6.0;
aluno[10]=6.0;
vet[3].media=6.0;
aluno[3].media=6.0;
Respondido em 06/05/2021 10:09:04
6
Questão
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 adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
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 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.
Respondido em 06/05/2021 10:09:09
7
Questão
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 primeiro elemento deste vetor.
aluno.vet[10].nota=5.7;
vet[10].nota=5.7;
vet[10]=aluno.5.7;
vet[10].aluno.nota=5.7 ;
aluno.vet[10]=5.7;
Respondido em 06/05/2021 10:09:14
8
Questão
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.
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;
}
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;
}
}
1
Questão
Em C++, quando uma variável é declarada como uma struct, o acesso para atribuição e leitura dos membros (campos) deste registro se dá pelo operador :
, (vírgula).
& (e comercial ou eitza).
* (asterisco).
∙ (ponto).
-> (seta).
Respondido em 06/05/2021 10:10:19
2
Questão
Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
Livro.codigo = 12345;
Livro->liv.codigo = 12345;
liv.preco = 30.70;
liv->preco = 30.70;
Livro.liv.codigo = 12345;
Respondido em 06/05/2021 10:10:23
3
Questão
Qual das seguintes estruturas de dados é classificada como heterogênea?
Loop
Registro
Vetor
Fila
Pilha
Respondido em 06/05/2021 10:10:28
4
QuestãoPode-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 primeiro elemento deste vetor.
vet[10].aluno.nota=5.7 ;
vet[10]=aluno.5.7;
aluno.vet[10]=5.7;
vet[10].nota=5.7;
aluno.vet[10].nota=5.7;
Respondido em 06/05/2021 10:10:40
5
Questão
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 primeiro elemento deste vetor.
vet[10]=aluno.5.7;
aluno.vet[10]=5.7;
aluno.vet[10].nota=5.7;
vet[10].nota=5.7;
vet[10].aluno.nota=5.7 ;
Respondido em 06/05/2021 10:10:49
6
Questão
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.
É 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.
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, alterando a ordem existente e ajustando o total de elementos.
Respondido em 06/05/2021 10:10:54
7
Questão
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 media; }; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [ 10]; Marque a alternativa em que é atribuída de forma correta a media 6.0 para o quarto elemento deste vetor.
aluno[3].10=6.0;
vet[3].aluno=6.0;
aluno[3].media=6.0;
vet[3].media=6.0;
aluno[10]=6.0;
Respondido em 06/05/2021 10:11:03
8
Questão
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.
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;
}
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/2;
if (v[meio] == valor)
return meio;
if (valor < v[meio])
fim = meio -1;
else
ini = meio+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;
}
}
}
}
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;
}
}
AULA 4 – ORDENAÇÃO E PESQUISA
1
Questã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
Bublesort
Mergesort
Shellsort
Quicksort
Heapsort
Respondido em 06/05/2021 10:11:23
2
Questão
Considere a seguinte função busca escrita em linguagem C++ :
bool busca(int vetor[ ], int n, int tam)
{
int ini=0, mid;
while (ini <= tam)
{
cout << " x ";
mid = (ini + tam)/2;
if (vetor[mid] == n)
return true;
else if (n > vetor[mid])
ini = mid+1;
else
tam = mid-1;
}
return false;
}
Qual a quantidade total de impressões da letra x nas buscas pelos números n = 4, n = 2 e n = 0 no vetor [1,2,3,4,5,6,7,8], sendo tam = 7 ?
int vetor[] = {1,2,3,4,5,6,7,8};
busca(vetor, 4, 7);
busca(vetor, 2, 7);
busca(vetor, 0, 7);
6
5
4
9
8
Respondido em 06/05/2021 10:11:26
3
Questão
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
QuickSort
MergeSort
Seleção
Respondido em 06/05/2021 10:11:30
4
Questão
Em uma pesquisa sequencial a lista deve estar?
ordenada somente o primeiro da lista.
ordenada ou desordenada.
sempre desordenada.
desordenada somente da metade da lista até o final.
ordenada somente do início até a metade da lista.
Respondido em 06/05/2021 10:11:33
5
Questão
Marque a afirmativa correta para a "Busca ou pesquisa binária".
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 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.
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.
Respondido em 06/05/2021 10:11:39
6
Questão
Seja a seguinte função de ordenação:
void ordena( int n, int v[])
{
int i, j, x;
for (j = 1; j < n; ++j) {
x = v[j];
for (i = j-1; i >= 0 && v[i] > x; --i)
v[i+1] = v[i];
v[i+1] = x;
}
}
Pode-sedizer que é uma função de ordenação:
Que utiliza o método seleção e realiza uma ordenação crescente nos elementos do vetor v.
Que utiliza o método inserção e realiza uma ordenação decrescente nos elementos do vetor v.
Que utiliza o método inserção e realiza uma ordenação crescente nos elementos do vetor v.
Que utiliza o método seleção e realiza uma ordenação decrescente nos elementos do vetor v.
Que utiliza o método bolha e realiza uma ordenação crescente nos elementos do vetor v.
Respondido em 06/05/2021 10:11:44
7
Questão
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:
binária.
linear.
por comparação.
randômica.
por contagem.
Respondido em 06/05/2021 10:11:47
8
Questão
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, procure na segunda metade, ou seja, a da direita.
Se o item for igual ao item que está na metade do vetor, o item não foi encontrado.
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 menor que o 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 foi encontrado.
1
Questão
É 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 ......
por contagem.
randômica.
binária.
linear.
por comparação.
Respondido em 06/05/2021 10:12:06
2
Questão
Qual a importância de se entender a "ordenação" de dados ?
A ordenação é a base na qual, muitos sistemas 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 algoritmos 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 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.
Respondido em 06/05/2021 10:12:08
3
Questão
"Algoritmo de ordenação por trocas que varre um vetor um certo número de vezes, comparando os elementos vizinhos dois a dois. A cada varredura, se o par de elementos está em ordem crescente, nada é feito, caso contrário os elementos do par são permutados". Esta definição está descrevendo o algoritmo de ordenação conhecido por :
InsertionSort
MergeSort
QuickSort
SelectionSort
BubbleSort
Respondido em 06/05/2021 10:12:10
4
Questão
Sabendo-se que o método de ordenção bolha ou bubble sort realiza a troca de elementos adjacentes até que todos os elementos de um vetor esteja ordenado. Então, se submetermos a sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 4, 2, 5, 1.
Pode-se dizer que quando o maior elemento do vetor alcançar sua posição final, a ordenação apresentada no vetor é:
2,1,4,5
2,4,1,5
4,1,2,5
1,4,2,5
1,2,4,5
Respondido em 06/05/2021 10:12:13
5
Questão
Os métodos de ordenação são muito utilizados para facilitar a recuperação posterior de itens ordenados. Existem vários métodos de ordenação, por esse motivo, assinale corretamente a alternativa que mostra o nome do método que utiliza a estratégia de ordenação por trocas de vizinhos e é considerado o método mais simples.
Seleção
Inserção
Bolha
Hash
Binária
Respondido em 06/05/2021 10:12:18
6
Questão
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
Pesquisa ordenada
Tabela Hash
Pesquisa sequêncial
Pesquisa de seleção
Respondido em 06/05/2021 10:12:21
7
Questão
Considere as afirmativas a seguir.
I. Uma forma muito simples de fazer uma busca em um vetor consiste em percorrer o vetor, elemento a elemento, para verificar se o elemento procurado é igual a um dos elementos do vetor.
II. A pesquisa sequencial é extremamente simples e eficiente quando o número de elementos do vetor for muito grande.
III. Na pesquisa binária, a cada interação do algoritmo o tamanho do vetor é dividido ao meio.
IV. A pesquisa binária funciona corretamente quanto o conjunto de dados estiver desordenado.
Assinale a alternativa correta.
Somente as afirmativas I e IV são corretas.
Somente as afirmativas II, III e IV são corretas.
Somente as afirmativas I e II são corretas.
Somente as afirmativas I e III são corretas.
Somente as afirmativas III e IV são corretas.
Respondido em 06/05/2021 10:12:32
8
Questão
Caso seja empregada uma busca binária em uma lista sequencial ordenada com 2048 valores, qual seria o número máximo de comparações para encontrar um valor que esteja na lista?
10
9
8
11
12
AULA 5 – A ESTRUTURA DE DADOS (LISTA)
1
Questão
Estude atentamente o código a segir:
int deciframe(int v[ ], int tam, int e){
int i = 0, f = tam -1, m;
while ( i <= f ){
m = ( i + f ) / 2;
if ( v[m] == e ) { return m; }
if ( e < v[m] ) { f = m - 1; }
else { i = m + 1; }
}
return -1;
}
Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela retornaria?
v[10] = {0, 2, 4, 6, 8, 10, 20, 100}
tam = 8
e = -6
0
4
3
-1
6
Respondido em 06/05/2021 10:12:51
2
Questão
Considere uma lista com n livros, em que cada livro é modelado pela struct :
struct Livro {
string titulo, editora, autor;
float preco;
};
A função X abaixo
void X (Livro v[ ], int &n, Livro L)
{
v[n] = L;
n++;cout << "Operação realizada com sucesso.";
}
implementa a operação de :
Busca
Inicialização
Ordenação por inserção
Inserção
Substituição
Respondido em 06/05/2021 10:12:56
3
Questão
Quanto a Pesquisa ou Busca Binária julgue os itens em V (VERDADEIRO) ou F (FALSO):
Na operação de inserção de um valor do vetor passado como parâmetro, não é necessário primeiro verificar se a lista está cheia.
A Pesquisa Binária consiste em fazer uma busca em um vetor 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, comparando o valor de busca com o elemento da lista.
O protótipo abaixo é válido para uma função de busca binária: int buscaBinaria(float v[], float valor , int n);
Na operação de remoção de um valor do vetor passado como parâmetro, não é necessário primeiro verificar se a lista está vazia.
A Busca Binária é mais eficiente quando o vetor não está ordenado.
Respondido em 06/05/2021 10:13:16
4
Questão
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 é:
Variável
Matriz
Função
Vetor
Registro
Respondido em 06/05/2021 10:13:22
5
Questão
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
bubble sort e quicksort.
busca por ordenação e ordenação shell.
quicksort e hashing.
hashing e bubble sort.
ordenação shell e hashing.
Respondido em 06/05/2021 10:13:27
6
Questão
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].nome << endl;
for (int i = 0; i < n; i++)
cout << L.matricula[i] << " " << L.nome[i] << endl;
for (int i = 0; i < n; i++)
cout << L.matricula << " " << L.nome << endl;
for (int i = 0; i < n; i++)
cout << L[i] << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].nome[30] << endl;
Respondido em 06/05/2021 10:13:32
7
Questão
Considere uma lista sequencial L com n fichas de professores, sendo que cada ficha de professor é modelada pela struct :
struct professor {
int matricula;
char titulo[30];
};
e a lista L é assim declarada : professor L[n];
Assinale o trecho que corretamente exibe todas as matrículas e titulações de todos os n professores de L .
for (int i = 0; i < n; i++)
cout << L.matricula[i] << " " << L.titulo[i] << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo[30] << endl;
for (int i = 0; i < n; i++)
cout << L.matricula << " " << L.titulo << endl;
for (int i = 0; i < n; i++)
cout << L[i] << endl;
Respondido em 06/05/2021 10:13:36
8
Questão
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.
Lista Sequencial
Lista Encadeada
Pilha Sequencial
Fila Sequencial
Pilha Encadeada
1
Questão
Considere as seguintes afirmações sobre Listas Sequenciais:
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados armazenados.
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados da mesma.
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Marque a opção que contém apenas todas as afirmações verdadeiras:
I, II, III
I, III, IV
I, II, IV
I, II
I, II, III, IV
Respondido em 06/05/2021 10:13:56
2
Questão
Considere as seguintes afirmações: I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100]. II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor. III. Uma string declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
Estão corretas apenas as afirmativas I e III.
Está correta apenas a afirmativa I.
Está correta apenas a afirmativa II.
Estão corretas apenas as afirmativas I e II.
Nenhuma afirmação está correta.
Respondido em 06/05/2021 10:14:00
3
Questão
__________________________ é uma lista linear em que a alocação de memória pode ser estática, e que a forma de armazenamento é contígua ou sequencial na memória. Usamos este tipo de lista quando se tem em mente um tamanho pré-definido, ou seja, quando se sabe até onde a lista pode crescer.
Lista Linear Não Sequencial
Lista Linear Não Alocada
Lista Não Linear
Lista Linear de Alocação de Memória
Lista Linear Sequencial
Respondido em 06/05/2021 10:14:04
4
Questão
Considere uma lista sequencial L com n fichas de professores, sendo que cada ficha de professor é modelada pela struct :
struct professor {
int matricula;
char titulo[30];
};
e a lista L é assim declarada : professor L[n];
Assinale o trecho que corretamente exibe todas as matrículas e titulações de todos os n professores de L .
for (int i = 0; i < n; i++)
cout << L[i] << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo[30] << endl;
for (int i = 0; i < n; i++)
cout << L.matricula[i] << " " << L.titulo[i] << endl;
for (int i = 0; i < n; i++)
cout << L.matricula << " " << L.titulo << endl;
Respondido em 06/05/2021 10:14:08
5
Questão
for (int i = 0; i < n; i++)
cout << L.matricula[i] << " " << L.nome[i] << endl;
for (int i = 0; i < n; i++)
cout << L.matricula << " " << L.nome << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].nome[30] << endl;
for (int i = 0; i < n; i++)
cout << L[i] << endl;
for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].nome << endl;
Respondido em 06/05/2021 10:14:12
6
Questão
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
hashing e bubble sort.
bubble sort e quicksort.
busca por ordenação e ordenação shell.
ordenação shell e hashing.
quicksort e hashing.
Respondido em 06/05/2021 10:14:17
7
Questão
Considere uma lista com n livros, em que cada livro é modelado pela struct :
struct Livro {
string titulo, editora, autor;
float preco;
};
A função X abaixo
void X (Livro v[ ], int &n, Livro L)
{
v[n] = L;
n++;
cout << "Operação realizada com sucesso.";
}
implementa a operação de :
Inserção
Busca
Inicialização
Ordenação por inserção
Substituição
Respondido em 06/05/2021 10:14:22
8
Questão
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 é:
Registro
Função
VariávelVetor
Matriz
AULA 6 – A ESTRUTURA DE DADOS (PILHA)
1
Questão
Pilha é uma estrutura de dados
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 vetores.
Que pode ser implementada somente por meio de listas.
Cujo acesso aos seus elementos segue tanto a lógica LIFO quanto a FIFO.
Respondido em 06/05/2021 10:14:41
2
Questão
A estrutura de dados Pilha funciona de acordo com o seguinte fundamento básico:
O primeiro a entrar é o último a sair.
O primeiro a entrar é o primeiro a sair.
Quem estra no topo da pilha não sai mais.
O último a entrar é o último a sair.
Tanto o primeiro como o último podem sair primeiro.
Respondido em 06/05/2021 10:14:45
3
Questão
Considere que existe uma rotina para inserir um valor inteiro em uma pilha de inteiros com o protótipo abaixo:
int push (int pilha[], int valor, int &topo); //retorno: 1=empilhou; 0=não empilhou
Considere que existe uma função que remove um valor de uma pilha, que possui o protótipo abaixo:
int pop (int pilha[], int &valor, int &topo);//retorno: 1=desempilhou; 0=não desempilhou
Considere ainda a execução do seguinte trecho do programa principal:
int primeira[5], topoP=-1, segunda[5], topoS=-1, numero;
push (primeira, 3, topoP);
push (primeira, 5, topoP);
pop (primeira, numero, topoP);
push (segunda, numero, topoS);
push (segunda, 7, topoS);
push (primeira, 1, topoP);
Ao final da execução do techo de código acima, responda, nesta ordem, quantos valores haverá na pilha primeira, quantos valores haverá na pilha segunda, qual é o valor no topo da pilha primeira e qual é o valor no topo da pilha segunda.
3; 2; 3; 5
1; 2; 1; 7
2; 2; 3; 5
2; 2; 1; 7
2; 1; 1; 5
Respondido em 06/05/2021 10:14:50
4
Questão
Tanto a operação TOP (acessa topo), quanto à operação POP (remover), permite acessar o último elemento armazenado em uma Pilha. Quanto à diferença entre ambas as operações em relação ao estado da Pilha é correto afirmar:
A operação TOP remove um elemento e altera o estado da Pilha
Somente a operação POP altera o estado da Pilha
Somente a operação TOP altera o estado da Pilha
Ambas alteram o estado da Pilha
Nenhuma das operações altera o estado da Pilha
Respondido em 06/05/2021 10:14:55
5
Questão
Algoritmo Pilha
Inicio
IniciarPilha(s)
enquanto (não for o final das entradas) faca
leia (num)
se (num != 3) então
Empilhar (s, num)
senão
Desempilhar(s)
x := ElementoTopo(s)
fimse
fimenquanto
fimalgoritmo
Considere que, no trecho do algoritmo acima, representado por seu pseudocódigo, seja fornecido para num, sucessivamente, os valores inteiros 1, 2, 3, 4, 5, 3 e 6. Nesse caso, ao final da execução do algoritmo, o valor de x será igual a ...
5 e a pilha terá os valores 6, 3, 5, 4, 3, 2 e 1.
2 e a pilha terá os valores 6, 4 e 1.
3 e a pilha terá os valores 6, 5, 4, 2 e 1.
5 e a pilha terá os valores 6, 4 e 1.
3 e a pilha terá os valores 6, 4 e 1.
Respondido em 06/05/2021 10:14:58
6
Questão
As estruturas de dados devem ser especificadas de modo que estas auxiliem as aplicações em sua principal tarefa ou funcionalidade. Sendo assim, pode-se desenvolver uma aplicação capaz de fazer a conversão de números da base 10, para a base binária, octal ou hexadecimal a partir de um algoritmo de divisões sucessivas. Este algoritmo baseia na divisão de um número decimal pela base que se deseja a transformação, armazenando o resto da divisão em uma estrutura de dados, efetuando nova divisão no resultado obtido da divisão prévia, novamente armazenando o resto desta operação na estrutura de dados e assim por diante até que o resultado da divisão seja zero. Neste momento, a estrutura possui exatamente, na ordem reversa, os algarismos correspondentes ao número convertido para a nova base. Analisando esta estratégia poder-se-ia dizer que a estrutura de dados mais propícia para tal tarefa é :
Lista
Fila
Grafo
Árvore
Pilha
Respondido em 06/05/2021 10:15:03
7
Questão
Para gerenciar o acesso do usuário às URL pelas quais ele já passou utilizando as teclas de avanço para trás e para frente, um navegador (Explorer, Chrome, Firefox, etc.) deve armazenar as URL em estruturas de:
Listas
Árvores
Pilhas
Grafos
Filas
Respondido em 06/05/2021 10:15:10
8
Questão
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().
Pode-se dizer que o interior da pilha apresenta-se:
Vazio
Com os dados A e B
Com os dados A e D
Apenas com o dado A
Apenas com o dado D
1
Questão
A estrutura de dados linear que obedece o seguinte critério: o último elemento inserido será o primeiro elemento a ser retirado (LIFO) é:
Pilha
Árvore AVL
Lista circular
Árvore binária
Fila
Respondido em 06/05/2021 10:15:28
2
Questão
A estrutura de dados que segue a lógica LIFO (Last in First Out) é denominada :
Fila
Árvore
Lista duplamente encadeada
Pilha
Vetor
Respondido em 06/05/2021 10:15:33
3
Questão
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 primeiro item inserido é o primeiro a ser retirado.
Os acessos aos itens ocorrem de forma aleatória.
O último item inserido é o último item a ser retirado.
Respondido em 06/05/2021 10:15:37
4
Questão
Em termos da estrutura de dados do tipo PILHA, a sequência de ações empilha(10), empilha(3), empilha(5), empilha(8), desempilha(), desempilha(), empilha(20), promoveria a configuração da estrutura a partir do topo :
10 3 5 8
5 8 20
20 3 5 8
20 10 3
20 3 10
Respondido em 06/05/2021 10:15:41
5
Questão
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.
Após a 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 inicio.
Antes da 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.
Respondido em 06/05/2021 10:15:46
6
Questão
Considere uma pilha sequencial de números reais representada por
struct Pilha {
int topo;
float v[10];
};
onde temos Pilha p;
Marque a opção que corretamente inicializa a pilha :
p.topo = -1;
Pilha.topo = 0;
p->topo = 0;
topo.pilha = -1;
Pilha.topo = -1;
Respondido em 06/05/2021 10:15:49
7
Questão
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 ?
lista
pilha
fila
árvore
grafo
Respondido em 06/05/2021 10:15:51
8
Questão
Assinale a opção que apresenta uma estrutura de dados embasada no princípio last in, first out (LIFO) ¿ último a entrar, primeiro a sair ¿, na qual,conforme a inserção, os dados inseridos primeiramente na estrutura são os últimos a serem removidos.
listas
pilhas
árvores
filas
vetores
AULA 7 – A ESTRUTURA DE DADOS (FILA)
1
Questão
A estrutura de dados conhecida pela lógica FIFO (First In First Out) é denominada :
Pilha
Vetor
Árvore
Fila
Lista circular
Respondido em 06/05/2021 10:16:06
2
Questão
Escolha a opção verdadeira :
Uma pilha, a depender de sua configuração, pode funcionar como uma fila
Uma estrutura de dados que segue a lógica FIFO permite inclusões apenas no topo da estrutura de dados.
Pilhas e filas não podem ser implementadas através do uso de listas encadeads
Uma estrutura de dados que segue a lógica FIFO equivale a uma estrutura de dados que segue a lógica LIFO.
Em uma estrutura de dados que segue a lógica LIFO, os dados são excluídos na ordem inversa em que foram incluídos.
Respondido em 06/05/2021 10:16:13
3
Questão
Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente desenfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.
struct Fila { in t v[100], inicio, fim; } ;
Fila F;
F. inicio = 0;
F.fim = -1;
void desenfileirar(Fila &F) {
if (F.inicio > F.fim)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
}
}
void desenfileirar(Fila &F) {
if (F.fim == -1 && F.inicio == 0)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio++;
}
}
void desenfileirar(Fila F) {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio--;
}
void desenfileirar(Fila &F) {
if (F.inicio > F.fim)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio++;
}
}
void desenfileirar(Fila F) {
if (F.inicio > F.fim)
cout << "Não há agentes para retirar. " << endl;
else {
cout << "Removido o agente " << F.v[F.inicio];
F.inicio++;
}
}
Respondido em 06/05/2021 10:16:19
4
Questão
Seja Q uma estrutura de dados do tipo fila, em que ENQUEUE(X) significa a adição do elemento X à Q e que DEQUEUE(), a retirada de um elemento. Q está inicialmente vazia e sofre a seguinte sequencia de operações:
ENQUEUE(1)
ENQUEUE(2)
DEQUEUE()
ENQUEUE(3)
ENQUEUE(4)
DEQUEUE()
DEQUEUE()
ENQUEUE(5)
Ao final da sequencia, a soma dos elementos de que (Q) será?
9
6
5
0
15
Respondido em 06/05/2021 10:16:25
5
Questão
Ao treinar macacos, foi realizado um jogo para avaliar sua memória. O cientista fornecia sequências de cartas com figuras geométricas e o macaco devia reproduzir a mesma sequência usando figuras geométricas reais. Qual a estrutura de dados mais adequada para modelar esse jogo ?
árvore
grafo
lista
fila
pilha
Respondido em 06/05/2021 10:16:29
6
Questão
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?
PILHA
STRUCT
CONJUNTO
LISTA
PONTEIRO
Respondido em 06/05/2021 10:16:38
7
Questão
IFMT - Técnico em Técnologia da Informação - 2013
Considere a função insere(x: inteiro), que recebe como parâmetro um número inteiro e o insere em uma Fila, e ainda, a função remove(), que retira um valor de uma Fila.
Dada a Fila [3-4-6-8-10], executam-se os comandos na ordem: insere(1), insere(2), remove().
Após a execução desses comandos, qual será a Fila resultante?
[2-3-4-6-8-10]
[3-4-6-8-10]
[4-6-8-10-1-2]
[2-1-3-4-6-8]
[3-4-6-8-10-1]
Respondido em 06/05/2021 10:16:42
8
Questão
Assinale a opção que, corretamente, mostra exemplos em que a estrutura de dados fila é usada, de acordo com o critério de inserções e remoções que rege tal estrutura.
Fila de documentos para xerox e fila de arquivos para impressão.
Fila de pessoas para tirar o visto e fila de pessoas para usar o caixa eletrônico.
Fila de arquivos para impressão e buffer para gravação de dados em fila.
Buffer para gravação de dados em mídia e fila de pessoas para comprar o ticket do metrô.
Fila de arquivos para impressão e fila de pessoas no caixa de um supermercado.
1
Questão
Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente enfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.
struct Fila { in t v[100], inicio, fim; } ;
Fila F;
F. inicio = 0;
F.fim = -1;
void enfileirar(Fila F, int codigo) {
F.fim++;
F.v[F.fim] = codigo;
}
void enfileirar(Fila &F, int codigo) {
F.v[F.fim] = codigo;
F.fim++;
}
void enfileirar(Fila F, int codigo) {
if (F.fim == 100)
cout << "Não há espaço na firma para mais agentes. " << endl;
else {
F.fim++;
F.v[F.fim] = codigo;
}
}
void enfileirar(Fila &F, int codigo) {
if (F.fim == 99)
cout << "Não há espaço na firma para mais agentes. " << endl;
else {
F.fim++;
F.v[F.fim] = codigo;
}
}
void enfileirar(Fila &F, int codigo) {
if (F.fim == 99)
cout << "Não há espaço na firma para mais agentes. " << endl;
else
F.fim++;
F.v[F.fim] = codigo;
}
Respondido em 06/05/2021 10:17:00
2
Questão
Ao inserirmos em uma estrutura de dados do tipo fila sequencial os seguintes elementos: A, B, C, D, exatamente nesta ordem. E em seguida realizarmos duas operações consecutivas de remoção na fila e imediatamente inserirmos dois novos elementos o X e o W. Podedmos afirmar que se realizarmos uma nova operação de remoção, o elemento que será removido desta fila sera o:
X
W
D
A
C
Respondido em 06/05/2021 10:17:04
3
Questão
Considere uma fila circular de tamanho 5, contendo os valores A, Z e C. Assim, o início está na posição 0 (zero) e o fim na posição 2 (dois). Dica: O vetor inicia na posição 0 (zero). Supondo agora que as seguintes operações ocorrerão na lista:
1. D é inserido
2. H é inserido
3. Um elemento é deletado
4. F é inserido
5. Um elemento é deletado
Qual os valores de início e fim ao final dessas operações?
Início 4 e fim 4
Início 0 e fim 0
Nenhuma das opções
Início 1 e fim 4
inicio 2 e fim 0
Respondido em 06/05/2021 10:17:07
4
Questão
Um aluno do EAD estava estudando para a prova de Estrutura quando viu o trecho do programa abaixo em uma apostila.
Como não estava com seu micro, começou a analisar a função entra(...), ficando atento a alguns membros da struct.
Quando finalizou, virou a página da apostila e viu a resposta. Então, ficou muito feliz por ter identificado a estrutura
Assinale a alternativa onde está presente a resposta correta.
Fila Circular
Lista Linear
Lista simplesmente encadeada
Fila
Pilha
Respondido em 06/05/202110:17:11
5
Questão
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:
lista circular
pilha sequencial
pilha circular
lista sequencial
fila circular
Respondido em 06/05/2021 10:17:16
6
Questão
Para organizar o acesso dos processos que demandam recursos do computador (uso da CPU, acesso ao disco rígido e a outros dispositivos de Entrada e Saída), o Sistema Operacional gerencia essas demandas colocando os processos requisitantes em:
Listas
Filas
Structs
Árvores
Pilhas
Respondido em 06/05/2021 10:17:19
7
Questão
Considerando que uma fila seqüencial utiliza dois apontadores para indicar suas posições de final e início da estrutura, supondo que a fila foi criada com os apontadores apontando para a posição zero do vetor, qual das alternativas a seguir pode caracterizar uma fila vazia?
Quando o apontador de posição final for igual ao início.
Quando o apontador de final menos um (final-1) for igual ao inicio.
Quando o apontador de final apontar para zero.
Quando o apontador de início apontar para zero.
Quando os apontadores de final e início apontarem para zero.
Respondido em 06/05/2021 10:17:25
8
Questão
Pode-se citar os seguintes exemplos de aplicação da estrutura fila: Fila de arquivos para impressão:
· Atendimento de processos requisitados a um sistema operacional.
· Buffer para gravação de dados em mídia.
· O tratamento do armazenamento das teclas que estão sendo digitadas antes da tecla enter ser pressionada.
Agora analise as seguintes afirmativas:
I- Uma fila guarda a ordem direta em que os elementos foram armazenados.
II- Uma fila guarda a ordem reversa em que os elementos foram armazenados.
III- O algoritmo que é implementado em uma fila é baseao no princípio: " O último a entrar é o primeiro a sair".
IV- O algoritmo que é implementado em uma fila é baseao no princípio: " O primeiro a entrar é o primeiro a sair".
Marque a alternativa correta:
Apenas a IV está correta
I e IV estão corretas
II e Iv estão corretas
I e III estão corretas
II e III estão corretas
AULA 8 – ALOCAÇÃO DINÂMICA/LISTAS ENCADEADAS (INTRODUÇÃO)
1
Questão
Dr. Pei Tam possui uma lista não ordenada de pacientes de seu consultório em que registra apenas o nome endereço e o telefone de cada paciente. Como não há limites para o crescimento de sua lista, como se pode implementar a inserção de um novo paciente na lista, sabendo que cada paciente é do tipo Paciente e a lista é do tipo List assim definidos :
struct Paciente {
long int matricula;
string nome, endereco e tel;
};
struct List {
Paciente p;
struct List *link;
};
List insereCliente(List *i, Paciente pac)
{
List novo[];
novo[0].p = pac;
novo[0].link = i;
return novo;
}
List * inserePac(List *i, Paciente pt)
{
List *novo = new List;
novo->p = pt;
novo->link =i;
return novo;
}
List * inserePac(List *i, Paciente pac)
{
List *novo = new List;
novo.p = pac;
novo.link = i;
return novo;
}
List * inserePac(List *i, Paciente pt){
List *novo ;
novo->p = pt;
novo->link = i;
return novo;
}
List * inserePac(List *i) {
List *novo = new List;
Paciente pat;
novo->p = pat;
novo->link = i;
return novo;
}
Respondido em 06/05/2021 10:17:52
2
Questão
As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos: struct nodo{ float valor; string produto; nodo * proximo; }; Suponha que um determinado ponteiro pt esteja apontando para um nodo desta lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60. Marque a alternativa que corretamente possibilita esta operação:
pt->valor=5.60;
pt->próximo->valor=5.60;
pt->próximo.valor=5.60;
pt->5.60;
pt.valor->5.60;
Respondido em 06/05/2021 10:17:57
3
Questão
Qual o valor de x no final do programa? int main() { int x, *p, y; x = 2; p = &x; y = *p; y = 5; (*p)++; (*p) = (*p) - y; return(0); }
2
Nenhuma das anteriores. O programa possui um erro de sintaxe.
-2
8
5
Respondido em 06/05/2021 10:18:00
4
Questão
Em uma aplicação que usa processos de alocação estática e dinâmica de memória é correto afirmar que
A memória utilizada pela aplicação é totalmente alocada após o inicio de sua execução
Apenas a memória associada às variáveis do tipo vetor é alocada após o inicio da execução da aplicação
A memória utilizada pela aplicação é inicialmente estática, mas pode mudar
Toda a memória utilizada pela aplicação não muda durante toda a sua execução
Todas as afirmações acima são incorretas
Respondido em 06/05/2021 10:18:04
5
Questão
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.
pont->empregado->salario=5000.00;
pont.salario=5000.00;
salario=5000.00;
pont.empregado.salario=5000.00
pont.empregado->salario=5000.00;
Respondido em 06/05/2021 10:18:06
6
Questão
O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário, através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens.
Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos.
Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos.
Acesso, representação, compartilhamento de memória.
Proteção de memória, transferência de dados, estruturas simples.
Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes.
Respondido em 06/05/2021 10:18:11
7
Questão
Admita a seguinte estrutura de nó de uma lista simplesmente encadeada: struct tno { int chave; tno *proximo; }; Admita, agora, a seguinte declaração de uma variável do tipo nó: tno *no; Qual das alternativas a seguir traz uma operação válida sobre essa variável?
no->proximo = new tno;
no.chave = 5;
no->proximo = -10;
no.proximo = no;
no->chave = new int;
Respondido em 06/05/2021 10:18:18
8
Questão
Em uma lista linear simplesmente encadeada.
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista.
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista, formando um ciclo.
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.
1
QuestãoPara 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):
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
Após a inserção deve-se fazer o decremento da variável final
Após a inserção deve-se fazer o incremento da variável final
Respondido em 06/05/2021 10:18:36
2
Questão
Qual o valor de x no final do programa? int main() { int x, *p, y; x = 3; p = &x; y = *p; y = 7; (*p)++; (*p) += y; return(0); }
3
11
7
-4
Nenhuma das anteriores. O programa possui um erro de sintaxe.
Respondido em 06/05/2021 10:18:39
3
Questão
Em uma rotina em que se pretenda inserir o primeiro dado em uma estrutura dinâmica, é correto afirmar que:
Existe uma instrução de repetição para percorrer a lista.
Só deve existir estrutura de repetição se ocorrer a inclusão de mais de um dado simultaneamente
Não deve existir uma estrutura de repetição.
Deve existir uma estrutura de repetição somente de a lista for duplamente encadeada.
Deve existir uma estrutura de repetição somente se a estrutura for circular.
Respondido em 06/05/2021 10:18:43
4
Questão
A linguagem C++ oferece quatro meios de criação de tipos de dados: matrizes, estruturas ou structs, uniões e classes. As estruturas, que passaremos a chamar simplesmente de structs, são tipos de variáveis que agrupam dados geralmente desiguais, enquanto matrizes são variáveis que agrupam dados similares. Devido a esta característica as structs são utilizadas para modelar nodos (nós) de estruturas dinâmicas. Portanto podemos afirmar que:
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de compilação e terem seus tamanhos alterados de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tanto em tempo de execução quanto em tempo de compilação, mas não podem ter seus tamanhos alterados de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de compilação e entretanto seus tamanhos só são alterados na codificação de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois não podem fazer alocação de memória em tempo de execução, mas mesmo assim conseguem ter seus tamanhos alterados de acordo com a demanda.
As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de execução e terem seus tamanhos alterados de acordo com a demanda.
Respondido em 06/05/2021 10:18:46
5
Questão
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
pilha dinâmica e alocação dinâmica de memória
lista encadeada e alocação dinâmica de memória
fila encadeada e alocação dinâmica de memória
lista sequencial e alocação dinâmica de memória
Respondido em 06/05/2021 10:18:53
6
Questão
As variáveis são na verdade trecho de memórias que armazenam dados de diversas naturezas, portanto sempre que declara-se uma variável, na linguagem C++, é necessário informar o tipo de dado que esta irá armazenar. Um tipo especial de variáveis são os ponteiros, isto é, variáveis que armazenam apenas os endereços de outras variáveis. Assim os ponteiros são usados para que se possa acessar de forma indireta uma outra variável. Sabendo-se disto e supondo que o endereço na memória da variável "a" é 100 e o endereço da memória da variável ponteiro é 200, analise o trecho de código abaixo e marque a alternativa que representa a saída do programa:
9 9 200
100 9 200
200 9 100
100 100 200
9 100 200
Respondido em 06/05/2021 10:18:57
7
Questão
O conceito de ponteiros foi estudado em uma de nossas aulas. Sendo assim, leia atentamente as afirmativas abaixo e assinale a opção correta.
I A variável ponteiro não precisa ser declarada.
II A variável ponteiro armazena endereço.
III Quanto se usa &nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável apontada pela variável ponteiro.
IV Quando se usa nomeDaVariávelPonteiro com o comando cout, é exibido o endereço da variável ponteiro.
V Quando se usa *nomeDaVariávelPonteiro com o comando cout, é exibido o conteúdo da variável apontada pela variável ponteiro.
I, II e IV estão corretas
I IV e V estão corretas
II e V estão corretas
IV e V estão corretas
Somente a II está correta
Respondido em 06/05/2021 10:18:59
8
Questão
As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos:
struct nodo{
float valor;
string produto;
nodo * proximo;
};
Suponha que um determinado ponteiro pt esteja apontando para um nodo desta lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60. Marque a alternativa que corretamente possibilita esta operação:
pt->próximo->valor=5.60;
pt.valor->5.60;
pt->próximo.valor=5.60;
pt->5.60;
pt->valor=5.60;
AULA 9 – LISTAS ENCADEADAS (FINALIZANDO/PILHAS E FILAS)
1
Questão
Sabendo que uma fila encadeada possui seus nós definidos pela :
struct no {
int x;
no *prox;
};
Marque a alternativa que representa corretamente a criação ou alocação do nó na sintaxe do C++ para utilização na fila.
p *no -> new no;
no p -> new no;
no *p=new no;
p *no=new no;
no *p -> new no;
Respondido em 06/05/2021 10:19:22
2
Questão
Estava um aluno estudando Lista Simplesmente Encadeada quando encontrou em um site a definição da struct nodo e de uma função cujo nome você deverá escolher para substituir XXX nas opções abaixo depois que analisar a função, assumindo que teste foi realizado, permitindo que a operação fosse realizada.
struct nodo
{
int info;
struct nodo *prox;
};
nodo* XXX(nodo *ptr, int valor)
{
nodo *temp = new nodo;
...
temp->info = valor;
temp->prox = ptr;
return temp;
}
ListaNo
InsereNoFrente
InsereNoFim
BuscaNaLista
RemoveNo
Respondido em 06/05/2021 10:19:26
3
Questão
Seja o seguinte exemplo de nodo de uma lista de encadeada:
struct nodo{
float valor;
string produto;
nodo * proximo;
};
Sabendo-se que nesta lista o último nó ou nodo possui o campo próximo nulo (null), marque a alternativa que representa corretamente a operação de busca do último nodo, a partir de um ponteiro pt apontado para o primeiro nodo da lista.
while(pt != null)pt=pt->próximo;
while(pt->próximo != null)pt=pt->próximo->proximo;
while(pt->próximo->proximo)pt=pt->próximo;
while(próximo)pt=próximo;
while(pt->próximo)pt=pt->próximo;
Respondido em 06/05/2021 10:19:30
4
Questão
A pilha é uma estrutura de dados que permite a inserção/ remoção de itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidosos comandos:
- PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha "p";
- POP (p): Desempilha o elemento do topo da pilha.
Considere que, em uma estrutura de dados tipo pilha p, inicialmente vazia, sejam executados os seguintes comandos:
PUSH (p, 10)
PUSH (p, 5)
PUSH (p, 3)
PUSH (p, 40)
POP (p)
PUSH (p, 11)
PUSH (p, 4)
PUSH (p, 7)
POP (p)
POP (p)
Após a execução dos comandos, o elemento no topo da pilha "p" e a soma dos elementos armazenados na pilha "p" são, respectivamente,
11 e 29.
7 e 29.
4 e 80.
7 e 40.
11 e 80.
Respondido em 06/05/2021 10:19:34
5
Questão
Em termos da estrutura de dados do tipo FILA (fila encadeada com alocação dinâmica), a sequência de ações
insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
promoveria a configuração da estrutura:
5 8 20
10 3 5 8 20
10 3 20
20 5 8
5 8
Respondido em 06/05/2021 10:19:37
6
Questão
Tínhamos declarado um ponteiro de nome ptr e precisávamos construir uma estrutura de repetição que pudesse repetir enquanto o ponteiro não fosse nulo. Observe os trechos abaixo e assinale qual a afirmativa correta.
I if (ptr !=NULL)
II if( !ptr )
III if(ptr)
IV while (ptr !=NULL)
V while (ptr)
III e V estão corretas
III está correta
I e IV estão corretas
IV e V estão corretas.
I e II estão corretas.
Respondido em 06/05/2021 10:19:44
7
Questão
Sobre as estruturas de dados existentes podemos afirmar que:
Encadeamento estático e dinâmico apresentam o mesmo funcionamento de alocação na estrutura do tipo PILHA.
Na estrutura do tipo LIFO, as informações são inseridas no início e removidas do final.
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais antigo inserido.
Na estrutura do tipo FIFO, as informações são inseridas no início e removidas do final.
Na estrutura das Pilhas a manipulação dos dados sempre se dá no topo.
Respondido em 06/05/2021 10:19:52
8
Questão
Para converter de decimal para binário usamos a estrutura de dados pilha. Assinale a opção que, corretamente, indica as ações corretas para empilhar o resto da divisão gerado no processo de conversão, considerando uma lista simplesmente encadeada. Considere o tipo definido abaixo :
struct no {
int dado;
struct no *link;
};
É preciso alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó, apontar o link do novo nó para o início da lista e enfim, retornar o ponteiro para o novo nó.
Não é necessário alocar memória com new. Basta criar uma struct do tipo no, armazenar o resto da divisão número por 2 no campo dado e aterrar o campo link.
Basta alocar memória com new e armazenar o resto da divisão do número por 2 no campo dado do novo nó .
É preciso armazenar o resto da divisão do número por 2 no campo dado do primeiro nó da lista e retornar o ponteiro para este nó.
Basta alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó e aterrar o link do novo nó.
1
Questão
Sabendo que uma fila encadeada possui seus nós definidos pela :
struct no {
int x;
no *prox;
};
Marque a alternativa que representa corretamente a criação ou alocação do nó na sintaxe do C++ para utilização na fila.
no *p -> new no;
no *p=new no;
no p -> new no;
p *no -> new no;
p *no=new no;
Respondido em 06/05/2021 10:20:07
2
Questão
Estava um aluno estudando Lista Simplesmente Encadeada quando encontrou em um site a definição da struct nodo e de uma função cujo nome você deverá escolher para substituir XXX nas opções abaixo depois que analisar a função, assumindo que teste foi realizado, permitindo que a operação fosse realizada.
struct nodo
{
int info;
struct nodo *prox;
};
nodo* XXX(nodo *ptr, int valor)
{
nodo *temp = new nodo;
...
temp->info = valor;
temp->prox = ptr;
return temp;
}
RemoveNo
BuscaNaLista
ListaNo
InsereNoFim
InsereNoFrente
Respondido em 06/05/2021 10:20:11
3
Questão
Seja o seguinte exemplo de nodo de uma lista de encadeada:
struct nodo{
float valor;
string produto;
nodo * proximo;
};
Sabendo-se que nesta lista o último nó ou nodo possui o campo próximo nulo (null), marque a alternativa que representa corretamente a operação de busca do último nodo, a partir de um ponteiro pt apontado para o primeiro nodo da lista.
while(próximo)pt=próximo;
while(pt->próximo != null)pt=pt->próximo->proximo;
while(pt->próximo->proximo)pt=pt->próximo;
while(pt != null)pt=pt->próximo;
while(pt->próximo)pt=pt->próximo;
Respondido em 06/05/2021 10:20:19
4
Questão
A pilha é uma estrutura de dados que permite a inserção/ remoção de itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidos os comandos:
- PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha "p";
- POP (p): Desempilha o elemento do topo da pilha.
Considere que, em uma estrutura de dados tipo pilha p, inicialmente vazia, sejam executados os seguintes comandos:
PUSH (p, 10)
PUSH (p, 5)
PUSH (p, 3)
PUSH (p, 40)
POP (p)
PUSH (p, 11)
PUSH (p, 4)
PUSH (p, 7)
POP (p)
POP (p)
Após a execução dos comandos, o elemento no topo da pilha "p" e a soma dos elementos armazenados na pilha "p" são, respectivamente,
11 e 29.
11 e 80.
7 e 40.
7 e 29.
4 e 80.
Respondido em 06/05/2021 10:20:21
5
Questão
Em termos da estrutura de dados do tipo FILA (fila encadeada com alocação dinâmica), a sequência de ações
insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
promoveria a configuração da estrutura:
10 3 5 8 20
5 8
20 5 8
10 3 20
5 8 20
Respondido em 06/05/2021 10:20:27
6
Questão
Tínhamos declarado um ponteiro de nome ptr e precisávamos construir uma estrutura de repetição que pudesse repetir enquanto o ponteiro não fosse nulo. Observe os trechos abaixo e assinale qual a afirmativa correta.
I if (ptr !=NULL)
II if( !ptr )
III if(ptr)
IV while (ptr !=NULL)
V while (ptr)
III e V estão corretas
I e II estão corretas.
IV e V estão corretas.
I e IV estão corretas
III está correta
Respondido em 06/05/2021 10:20:32
7
Questão
Sobre as estruturas de dados existentes podemos afirmar que:
Na estrutura do tipo FIFO, as informações são inseridas no início e removidas do final.
Na estrutura do tipo LIFO, as informações são inseridas no início e removidas do final.
Encadeamento estático e dinâmico apresentam o mesmo funcionamento de alocação na estrutura do tipo PILHA.
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais antigo inserido.
Na estrutura das Pilhas a manipulação dos dados sempre se dá no topo.
Respondido em 06/05/2021 10:20:36
8
Questão
Para converter de decimal para binário usamos a estrutura de dados pilha. Assinale a opção que, corretamente, indica as ações corretas para empilhar o resto da divisão gerado no processo de conversão, considerando uma lista simplesmente encadeada. Considere o tipo definido abaixo :
struct no {
int dado;
struct no *link;
};
É preciso alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó, apontar o link do novo nó para o início da lista e enfim, retornar o ponteiro para o novo nó.
Basta alocar memória com new, armazenar o resto da divisão do número por 2 no campo dado do novo nó e aterrar o link do novo nó.
Basta alocar memória com new e armazenaro resto da divisão do número por 2 no campo dado do novo nó .
É preciso armazenar o resto da divisão do número por 2 no campo dado do primeiro nó da lista e retornar o ponteiro para este nó.
Não é necessário alocar memória com new. Basta criar uma struct do tipo no, armazenar o resto da divisão número por 2 no campo dado e aterrar o campo link.
AULA 10 – LISTAS DUPLAMENTE ENCADEADAS
1
Questão
São listas que, além de cada elemento indicar o elemento seguinte, também indicam aquele que o antecede, ou melhor, cada elemento é ligado a seu sucessor e a seu predecessor, possibilitando um caminhamento no sentido início-fim ou no sentido oposto (fim-início). O texto acima, sobre Estrutura de Dados, descreve :
Listas Duplamente Encadeadas
Árvore
Grafo
Listas simplesmente encadeadas
Listas Circulares
Respondido em 06/05/2021 10:20:56
2
Questão
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 possibilitam a busca de um nodo apontado pelo ponteiro p.
As operações removem o nodo apontado pelo ponteiro p.
As operações inserem novo nodo, após o nodo apontado pelo ponteiro p.
As operações possibilitam o percurso do ponteiro p da direita para esquerda.
As operações possibilitam o percurso do ponteiro p da esquerda para direita.
Respondido em 06/05/2021 10:21:00
3
Questão
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 *insereInicio(listaDE *LISTA, int valor);
void exibeIpF(listaDE *LISTA);
listaDE *remove(listaDE *LISTA, int valor);
Respondido em 06/05/2021 10:21:04
4
Questão
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 duplamente encadeada, cada nó aponta para um nó enquanto a lista simplesmente encadeada aponta para mais de um nó.
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 simplesmente encadeada cada nó aponta para nó seguinte e para o nó anterior.
Em uma lista duplamente encadeada cada nó aponta para nó seguinte e para o primeiro nó da fila.
Respondido em 06/05/2021 10:21:09
5
Questão
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, antes do Z, e X, antes do Y.
Y, antes do Z, e X, logo após o Z.
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.
Respondido em 06/05/2021 10:21:12
6
Questão
Com relação à lista duplamente encadeada, é correto afirmar que :
Não pode ser vazia.
A lista pode ser percorrida com igual facilidade para a direita ou para a esquerda, pois existem dois ponteiros.
Consome menos memória do que uma lista simplesmente encadeada, se tivermos uma mesma aplicação.
A lista precisa ter sempre um ponteiro apontando para o 1º. nó
Não pode haver remoções no meio da lista.
Respondido em 06/05/2021 10:21:15
7
Questão
Sobre as estruturas de dados lineares, assinale V ou F:
I - Em uma pilha, o último elemento a entrar é o primeiro a sair.
II - Em uma fila, o primeiro elemento a entrar é o último a sair.
III - Uma lista permite que as inserções possam ser feitas em qualquer lugar (posição), mas as remoções, não.
IV - Em uma lista circular com encadeamento simples, o primeiro elemento aponta para o segundo e para o último.
V - Para remover um elemento de uma lista duplamente encadeada, deve-se alterar o encadeamento dos elementos anterior e próximo ao elemento removido. A sequência correta de cima para baixo:
V,F,F,F,V
F,V,V,F,F
V,F,F,V,F
F,F,V,V,V
V,F,V,F,V
Respondido em 06/05/2021 10:21:19
8
Questão
O armazenamento de dados na memória do computador é feito de forma ordenada, utilizando-se estruturas e regras de operações. Das alternativas a seguir, assinale a correta:
Fila e Pilha são tipos especiais de listas lineares. Na Fila, o último que entra é o primeiro que sai, enquanto na Pilha, o primeiro que entra é o primeiro que sai.
Em uma lista linear com alocação sequencial, os dados são heterogêneos e os nós da lista podem ter tamanhos diferentes, mas exigem espaço em endereço contíguo de memória.
Existem várias formas de apresentação de listas lineares, como listas circulares e as matrizes, que são formas exclusivas das listas de alocação encadeada.
A lista binária é uma forma não-linear de organização dos dados. Existe um nó denominado raiz da árvore, que pode ter duas ou mais sub-árvores, que por sua vez também podem ter outras sub-árvores.
Em uma lista linear com alocação duplamente encadeada os nós da estrutura ocupam espaços aleatórios na memória e cada nó armazena além da sua informação os endereços do nó anterior e do próximo nó da estrutura.
1
Questão
Indique as afirmativas verdadeiras e as afirmativas falsas.
Uma lista simplesmente encadeada possui apenas um ponteiro, em cada nó, que guarda o endereço do próximo nó da lista.
É possível implementar um algoritmo de listagem dos dados de uma lista duplamente encadeada utilizando a mesma lógica de um algoritmode listagem de uma lista simplesmente encadeada.
No último elemento de uma lista simplesmente encadeada não circular o campo que guarda o endereço do elemento posterior contém o endereço do primeiro elemento da lista.
No primeiro elemento de uma lista duplamente encadeada, o campo que guarda o endereço do elemento anterior contém o endereço do último elemento da lista.
Uma lista duplamente encadeada possui dois ponteiros, sendo um responsável por armazenar o endereço do elemento anterior e outro responsável por armazenar o endereço do elemento posterior.
Respondido em 06/05/2021 10:21:41
2
Questão
Ao criarmos uma rotina para inserir um dado em uma LISTA de dados duplamente encadeada e circular, nos deparamos com as seguintes cuidados:
Só poderei inserir no final da lista e no começo somente se ela estiver vazia.
Só poderei inserir no começo ou no fim, mas não no meio.
Só poderei inserir no final da lista e no começo somente se ela estiver cheia.
Só poderei inserir no final da lista e nunca no começo ou no meio.
Posso inserir no começo, no meio ou no fim.
Respondido em 06/05/2021 10:21:45
3
Questão
Considere uma lista duplamente encadeada não circular em que
struct nodupla {
int dado;
struct nodupla *dlink; // aponta p/ o nó à direita
struct nodupla *elink; // aponta p/ o nó à esquerda
};
sendo nodupla *p; //ponteiro para o início da lista
A opção que corretamente mostra as instruções para inserir um valor no início da lista apontada por p é :
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
p->elink = novo;
p = novo;
n
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
if (p != NULL)
p->elink = novo;
p = novo;
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;
nodupla *novo;
novo = new nodupla;
novo.dado = valor;
novo.dlink = p;
novo.elink = NULL;
if (p != NULL)
p.elink = novo;
p = novo;
n nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;
Respondido em 06/05/2021 10:21:49
4
Questão
Um tipo de estrutura de dados é declarada em C como:
typedef struct no *apontador;
struct no{
int valor;
apontador esq, dir;
}
onde esq e dir representam ligações para os dados da esquerda e direita, respectivamente. Qual das seguintes alternativas é uma implementação correta da operação que inverte as posições dos dados da esquerda e da direita uma estrutura p, onde t é um apontador auxiliar.
t=p;
p->esq = p->dir;
p->dir = p->esq;
p->dir=t;
p->esq = p->dir;
p->dir = t;
p->esq = p->dir;
t = p->esq;
p->dir = t;
t=p->dir;
p->dir = p->esq;
p->esq = t;
t=p->dir;
p->esq = p->dir;
p->dir = t;
Respondido em 06/05/2021 10:21:54
5
Questão
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 vetor
Declaração de função
Alocação estática de memória
Alocação dinâmica de memória
Respondido em 06/05/2021 10:21:58
6
Questão
Em uma lista linear duplamente encadeada.
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista, formando um ciclo.
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.
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista.
Cada nó possui um só ponteiro que referencia o próximo nó da lista.
Respondido em 06/05/2021 10:22:03
7
Questão
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 dados, marque a alternativa correta.
struct nomeRegistro{
int info;
struct nomeRegistro* ant;
struct nomeRegistro* prox;
};
typedef struct nomeRegistro NOMEREGISTRO;
Lista duplamente encadeada
Matriz
Pilha
Fila
Lista encadeada
Respondido em 06/05/2021 10:22:05
8
Questão
Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para
trás, apenas.
frente e para trás, apenas.
frente, apenas.
cima e para baixo ou para frente e para trás.
cima e para baixo, apenas.