Buscar

estrutura de dados teste aula 1 até a 10

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 55 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ESTRUTURA DE DADOS
1a aula
   
CCT0826_EX_A1_201908017902_V1  23/08/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar dados ou informações na
memória, de modo a otimizar o acesso a estes. Muitas vezes existem algoritmos de manipulação dados associados a estas
estruturas. Verifique as seguintes sentenças:
I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram  armazenados.
II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram  armazenados.
III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram  armazenados.
IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram  armazenados.
Marque a alternativa CORRETA:
 As alternativas I e II estão corretas
As alternativas II e IV estão corretas.
As alternativas III e IV estão corretas.
Todas as alternativas estão corretas.
As alternativas I e III estão corretas.
Respondido em 23/08/2020 09:34:47
Gabarito
Comentado
 
          Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso que
farão, de cidade a cidade.  Qual a estrutura de dados mais adequada para modelar este problema ?
 Lista
Fila
             Pilha
 Grafo
              Árvore
Respondido em 23/08/2020 09:35:19
 
A forma correta para imprimir o valor do último elemento de um vetor v com n posições é:
 Questão1
 Questão2
 Questão3
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
cout << v[ultimo];
 cout << v[n-1];
cin >> v[-1];
cout << v[n];
cout << v[n+1];
Respondido em 23/08/2020 09:35:54
 
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:
São os nomes dados as variáveis na montagem de uma rotina.
É um modo de utilização de dados nos programas de 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 deleção de dados em um computador.
É um modo de distribuição e organização de dados em uma rede de computador de modo que possam ser usados de modo
eficiente.
Respondido em 23/08/2020 09:36:25
Explicação:
Analisando cada item :
É um modo particular de armazenamento e organização de dados em um
computador de modo que possam ser usados de modo eficiente.
Correta.
É um modo de distribuição e organização de dados em uma rede de
computador de modo que possam ser usados de modo eficiente.
FAlso. Não há distribuição de dados ou organização de dados em uma rede via
estrutura de dados.
É um modo de utilização de dados nos programas de computador.
FAlso. Não se diz como se utiliza dados.  Variáveis armazenam dados, por
exemplo e em atribuições ou em expressões também utilizamos dados.
São os nomes dados as variáveis na montagem de uma rotina.
FAlso.  Nomes de variáveis são identificadores.
É um modo de deleção de dados em um computador.
Falso. Para "deletar" um dado não temos que usar estrutura de dados.
 
Gabarito
Comentado
 
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.
fila
lista
grafo
 Questão4
 Questão5
pilha
 árvore
Respondido em 23/08/2020 09:36:47
Explicação:
Conforme gabarito e aula 1.
 
Leia com atenção as afirmativas abaixo e assinale a resposta correta.
I A estrutura de dados que melhor representa os diretórios ou pastas de arquivos do computador é a
árvore. 
II A estrutura de dados FILA é não linear assim como o Grafo. 
III O termo folha em uma estrutura de dados é usado para um nó sem filhos e que tem grau 0, 
IV O grau de uma árvore é definido pelo número de subárvores de um nó. 
V O grafo é uma estrutura de dados que tem limitação para o número de vértices. 
VI Uma das aplicações da estrutura de dados grafo é a Computação Gráfica. 
II, IV, V e VI são afirmativas verdadeiras
II, IV e V são afirmativas verdadeiras
I, II, III e VI são afirmativas verdadeiras
 I, III, IV e VI são afirmativas verdadeiras
I, II e V são afirmativas verdadeiras
Respondido em 23/08/2020 09:38:48
Gabarito
Comentado
 
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:
 As alternativas I e II estão corretas
As alternativas I e III estão corretas.
As alternativas II e IV estão corretas.
Todas as alternativas estão corretas.
As alternativas III e IV estão corretas.
Respondido em 23/08/2020 09:39:52
 
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 Sequencial
 Lista Sequencial
Lista Encadeada
Pilha Encadeada
Respondido em 23/08/2020 09:41:30
 Questão6
 Questão7
 Questão8
javascript:abre_colabore('38403','203169996','4063924894');
 
 
 
 
ESTRUTURA DE DADOS
2a aula
   
CCT0826_EX_A2_201908017902_V1  01/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
Na passagem por ____________________ , o endereço da variável da função chamadora é passado para a função chamada e, dessa forma, o
valor poderá ser alterado, ou não.
caracter
valor
número
void
 referência
Respondido em 01/10/2020 04:31:35
Explicação:
Esse é o conceito de passagem por referência.
 
Considere a função Adivinhe , n  =  4 e que X é formado pela sequência "algoritmo".  Assinale a opção que corretamente mostra o vetor Y ao
fim da execução da função  Adivinhe.
void Adivinhe (char X[ ], char Y [ ], int n)  {
    int i, j;
    j = 0;
    for ( i = n; i >= 0; i--)
    {
        Y[j] = X[i];
        j++;
    }
    Y[j] = '\0';
}
algo
algor
Ocorre erro, pois a função, que é do tipo void, não retorna o vetor Y.
ogla
 rogla
Respondido em 01/10/2020 04:34:27
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
Explicação:
Não há outra opção, pois a questão é objetiva. Vejamos passo a passo :
X armazena "algoritmo" e Y será gerado.
j i
0 4
1 3
2 2
3 1
4 0
5  -1 ... falha o teste i >= 0
A cada rodada do loop temos, considerando os valores de j e i acima, as seguintes atribuições :
Y[0] recebe X[4], que é 'r'
Y[1] recebe X[3], que é 'o'
Y[2] recebe X[2], que é 'g'
Y[3] recebe X[1], que é 'l'
Y[4] recebe X[0], que é 'a'
Y[5] recebe '\0'
Daí, Y será rogla
 
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 << "Valor de 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: 10 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: 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: -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: -200 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 30
Respondido em 01/10/2020 04:39:48
 Questão3
Explicação:
A execução começa pela main. Na main, B recebe 10. E daí é impresso :  Valor de B : 10
DEpois, B muda e recebe 20.
Em seguida, é chamada a função FUNC1. Dentro desta função, existe um outro B que recebe -100. Então, é impresso  :
                      Valor de B dentro da função FUNC1: -100
A função termina e voltamos para a main, onde existe um outro cout que imprime o valor de B, que na main vale 20. Então, será impresso
na tela :   
     Valor de B : 20         
Em seguida, ainda na main, B recebe 30 e logo depois, FUNC2 é chamada.  Executando FUNC2 temos que um B, local à função, recebe -200
e logo em seguida é impresso :  Valor de B dentro da função FUNC2 : -200
Terminando a execução de FUNC2, voltamos para a main onde é impresso o valor do B (local à main) :  Valor de B :  30
Logo, a opção correta é a que diz : 
      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
 
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.
30
20
50
40
 60
Respondido em 01/10/2020 04:42:25
Explicação:
int func1 (int vtx[], int tam) {
    int soma=0;  //inicializa soma com zero.
    for (int i=0 ; i < tam; i++) {
        if (i % 2 !=0)   //testa se i é ímpar. Se for, acumula na soma o valor de vtx[i]
             soma += vtx[i];     
    }
    return soma;
}
 Questão4
 
Fazendo um teste de mesa parcial ...
vetor  tam soma i
{10, 20, 30, 40, 50} 5 0 0
    20 1
      2
E continua ... se vê que a função está somando os elementos do vetor que possuem índices ímpares. Logo, serão somados 20 e 40, que
dará 60.
A soma 60 é retornada e impressa na main.
 
Considere a função abaixo:
void func (int a, int &b) {
    a++;
    b = a*2;
}
e o seguinte trecho de código na função  main :
int x=2, y=3;
func (x,y);
func (y,x);
cout << x << "  ;  " << y;
Após a execução do cout o que será impresso  ? 
 14; 6
2; 12
4; 12
6; 14
2; 6
Respondido em 01/10/2020 04:48:18
Explicação:
  Fazendo um teste de mesa, chegaremos na opção correta. 
Iniciando a execução pela main, temos que x recebe 2 e y recebe
3.  
Em seguida, na 1ª. chamada de func,  os valores de x e de y,
respectivamente, 2 e 3, são passados para a função.
Executando a função func, que possui o parâmetro a  passado
por valor e o parâmetro b passado por referência (usa &) ...
void func (int a, int &b) {
a++;
b = a*2;
}
Temos que a recebeu 2 e b recebeu 3. Daí, a ficará 3 e b receberá
6.  
 Questão5
Assim, ao terminar a função func e retornarmos para a main
teremos x sem alteração igual a 2 e y com alteração igual a 6.
Após voltarmos para a main, temos uma nova chamada de func
que recebe os valores de y e de x, respectivamente, que são 6 e
2.  Na 2ª. chamada de func para esses valores, teremos que a
recebe 6 e y recebe 2.  Dentro da função, temos que a é
incrementado para 7 e que b recebe 7 * 2 que dá 14. Ao
terminarmos a execução da função, temos que y não sofreu
mudança, ficando com o valor 6  e que x mudou para 14.  Logo,
será impresso 14;6
Logo, as demais opções são incorretas.
 
 
Considere a função abaixo:
int func (int a, int& b){
   a = b - a;
   b = a * 2;
   a = b * 2;
   return a;
}
Considere o seguinte código na função main:
    int x = 2, y = 3, z;
    z = func (x, y);
    cout << x << "; " << y << "; " << z;
O que será impresso?
2; 2; 1
 2; 2; 4
1; 3; 1
4; 2; 4
1; 2; 4
Respondido em 01/10/2020 04:58:36
Explicação:
a recebeu o valor de x que era 2
b recebeu 3, a partir de y, que foi passado por referência.
Executando a função, passo a passo, tem-se :
a recebeu 1
b recebeu  2
a recebeu um novo valor, que é  4.
Daí a função retorna o valor de a, que é 4.  
Voltando para a main temos que z recebeu o retorno da função que é 4, x não se alterou, valendo 2 e y recebeu 4, devido a alteração na
função no parâmetro b, passado por referência.
  Daí, na tela será impresso :  2; 2; 4
 
 Questão6
7
#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 não  possui parâmetros.
Retorna valor.
 Não retorna valor e possui parâmetros.
Retorna valor e possui parâmetros.
Não retorna valor e não   possui parâmetros.
Respondido em 01/10/2020 05:00:54
Explicação:
A função
void SOMA(float a, int b)  {
  float result  =  a+b;
  cout << "A soma de " << a << " com " << b << " é: " << result;
}
tem o tipo de retorno void, o que significa que nenhum valor é retornado. Além disso, a função possui 2 parâmetros, que são a e b.
Logo, a resposta certa é  Não retorna valor e possui parâmetros.
 
Informe qual deverá ser a saída do programa abaixo: 
 
#include 
void func(int *x) 
{ 
 do{ 
 cout << *x << " "; 
 (*x)--; 
 }while(*x>0); 
} 
 
main() 
{ 
 int x=5; 
 func(&x); 
 cout << x; 
 system("pause"); 
} 
 5 4 3 2 1 0
5 4 3 2 1 6
5 4 3 2 1 5
5 3 4 2 1 4
5 3 4 2 1 0
Respondido em 01/10/2020 05:02:05
 Questão
 Questão8
javascript:abre_colabore('38403','207160697','4137399427');
 
 
 
 
ESTRUTURA DE DADOS
2a aula
   
CCT0826_EX_A2_201908017902_V2  01/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
Para compararmos vetores de char, usaremos a função _____________________ . Para copiarmos o conteúdo de um vetor de char nas posições
ocupadas por outro vetor de char, usaremos a função ______________________ .
 strcmp(); e strcpy();
strcat(); e strcpy() ;
strcmp(); e strcat();
strcmp(); e strlen() ;
strcmp(); e strcmpi ();
Respondido em 01/10/2020 05:26:27
Explicação:
Nâo há outra possíbilidade de resposta.  Em cstring estão declaradas as funções da opção correta, que fazem exatamente o que foi
mencionado no enunciado.
Ainda a saber :   strcat concatena e strlen conta o número de caracteres
 
Considere o trecho de um programa escrito em C++ : 
long func1 (int n1) {
   int ft=1, i = 1;
   while ( i <= n1) {
         ft *= i;
         i++;
   }
   return ft;
}
main() {
    cout << func1 (5);
}
Marque a opção correta que mostra o que é impresso na tela.
60
 120
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
5
1
24
Respondido em 01/10/2020 05:28:37
Explicação:
Acompanhando passo a passo :
long func1 (int n1) {
   int ft=1, i = 1;
   while ( i <= n1) {
         ft *= i;
         i++;
   }
   return ft;
}
main() {
    cout << func1 (5);
}
Passo a passo :
1) Começando a execução pela main ... func1 é chamada e é passado o valor 5.
2) Entrando na função, temos que n1 recebeu 5, i recebeu 1  e ft recebeu 1.
3) Ainda na função func1 ...   teste do loop ... 1 <= 5 ? Sim.
    Então, ft recebe 1*1, que dá 1 e i passa a valer2.  Acompanhar na tabela desde o início da execução de func1
ft i i <= n1
1 1 1 <= 5 / Sim
1 2 2 <= 5 ? Sim
2 3 3 <= 5 ? sim
6 4 4 <= 5 ? Sim
24 5  5 <= 5 ? Sim
120 6 6 <= 5 ? FAlso
SErá retornado o valor de ft que é 120.  Volta-se então para a main e o valor 120 é impresso.
 
No programa abaixo, diga em que área de memória serão alocados os elementos de dados y e r, respectivamente.
#include 
using namespace std; 
int x, y; 
float media( float a, float b ) 
{ float tmp; 
tmp = (a + b ) / 2.0; 
return ( tmp ); 
} 
int main() 
{ 
float r; 
cout<<"Informe 2 valores: "; 
cin>>x>> y; 
r = media( x, y ); 
cout<<"\nMedia = "<< r<<"\n"; 
system ("pause"); 
}
( ) área de dados globais / área de registro
( ) área de registro / área de dados globais
( ) área de pilha / área de registro
( ) área de registro / área de pilha
 ( ) área de dados globais / área de pilha
 Questão3
Respondido em 01/10/2020 05:30:45
Explicação:
Como y e r são variáveis, ficarão armazenadas em  na área de dados globais / área de pilha
 
Considere a função:
void dobro(int x) {
      x = 10 * x;
}
Qual será o valor impresso na tela quando o programa principal for executado?
int main() {
int n;
n = 5;
dobro(n);
cout << n;
return 0;
} 
 
50
Haverá um erro de compilação
 5
10
0
Respondido em 01/10/2020 05:33:30
Gabarito
Comentado
 
Sobre funções, é correto afirmar:
Obrigatoriamente devem possuir parâmetros.
Não podem ser chamadas dentro de outras funções.
Obrigatoriamente devem retornam algum valor.
 São blocos de instruções que são executados quando são chamadas em alguma parte do programa.
Não devem conter variáveis locais em seu código.
Respondido em 01/10/2020 05:33:46
Explicação:
Uma função é um bloco de instruções que pode ser chamada a partir de outra função, que pode ter ou não parâmetros, que pode ou não
retornar valor, que pode ter ou não variáveis locais.
 
Blocos únicos de códigos que realizam diversas tarefas distintas são de difícil manutenção. Portanto, utiliza-se a técnica da modularização de
programas, a fim de facilitar a implementação e a manutenção dos programas. Esta técnica tem como principal elemento:
Os Grafos
 As funções
As Estruturas de Dados
As Filas
Os Vetores
 Questão4
 Questão5
 Questão6
Respondido em 01/10/2020 05:37:13
 
 
O programa não executa corretamente, pois os protótipos estão fora da ordem em
que as funções são descritas.
O programa executa perfeitamente, mas não mostra o valor da media já que esta
função não foi chamada na função main( ).
O programa não executa corretamente pois as funções devem ser descritas antes
da função main(), para que o compilador consiga reconhecê-las.
 O programa executa perfeitamente independente da ordem das funções já que
existem os seus protótipos.
O programa não executa corretamente, pois o protótipo da função media( ) não
apresenta a identificação dos parâmetros, mas apenas os tipos dos mesmos.
Respondido em 01/10/2020 05:38:24
Gabarito
Comentado
 
 Questão7
 Questão
8
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;
0 e 5
 25 e 15
15 e 25
25 e 25
15 e 15
Respondido em 01/10/2020 05:45:28
Explicação:
Analisando passo a passo, temos :
x é declarado e inicializado com 15. Daí, testa-se a condição do if, que é verdadeira. Em seguida, entra-se no bloco do if onde um outro x é
declarado, recebe 25 e é impresso. Terminado o bloco do if, o x local ao bloco do if não é mais enxergado. Então, ao executarmos a última linha
do cout, que está fora do if, vemos que o valor de  x impresso é 15.
Logo, a resposta correta é 25 e 15
javascript:abre_colabore('38403','207161198','4137404544');
 
 
 
 
ESTRUTURA DE DADOS
3a aula
   
CCT0826_EX_A3_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
Qual das seguintes estruturas de dados é classificada como heterogênea?
Loop
Fila
Pilha
Vetor
 Registro
Respondido em 14/10/2020 05:17:13
Explicação:
Registro permite agregar dados de tipos diferentes.
Vetor permite agregar dados do mesmo tipo.
Pilha e fila implementadas com vetor ou lista encadeada.
Loop : termo genérico para repetições.
Gabarito
Comentado
 
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;
}
void ordena (int v[], int n){ 
       int i, j, aux; 
       for (j = 1; j < n; j++) 
           for (i=j; i > 0 && v[i-1]> v[i]; i--){ 
              aux = v[i-1]; 
              v[i-1] = v[i]; 
              v[i] = aux; 
            } 
}
int ordena(float v[], float valor, int n) {
 int ini = 0, fim = n-1, meio;
   while (ini >= fim){
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
     meio = ini/2;
     if (v[meio] == valor)
       return meio;  
     if (valor < v[meio])
       fim = meio -1;
     else
       ini = meio+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; 
        } 
    } 
} 
}
Respondido em 14/10/2020 05:17:19
Explicação:
Na ordenação por seleção, a idéia é sempre procurar o menor elemento do vetor e inseri-lo no início do vetor. Procuramos o menor valor do
vetor e colocamos ele em vetor.
Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em vetor. E assim vamos indo até termos todo o vetor
ordenado.
Partindo sempre a partir do último elemento reordenado (a partir do i), o programa procura o menor elemento no vetor e o substitue pelo
elemento i atual.
É o que está ocorrendo na primeira opção!
Gabarito
Comentado
 
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
 Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no
meio ou, antes do meio ou depois do meio.
Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no
meio ou, antes do meio ou depois do meio.
Respondido em 14/10/2020 05:17:25
Explicação:
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos. 
Só pode ocorrer, no entanto, se a lista não estiver cheia.
 
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;
 Questão3
 Questão4
              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].nota=5.7;
aluno.vet[10].nota=5.7;
vet[10].aluno.nota=5.7;
vet[10]=aluno.5.7;
aluno.vet[10]=5.7;
Respondido em 14/10/2020 05:17:31
 
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;
 vet[3].media=6.0;
aluno[3].media=6.0;
aluno[10]=6.0;
Respondido em 14/10/2020 05:17:36
 
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;
 vet[10].nota=5.7;
aluno.vet[10]=5.7;
vet[10].aluno.nota=5.7 ;
aluno.vet[10].nota=5.7;
Respondido em 14/10/2020 05:17:41
 
Marque a opção correta, considerando 
struct Livro { 
int codigo; 
float preco; 
} liv; 
Livro->liv.codigo = 12345;
liv->preco = 30.70;
Livro.codigo = 12345;
 liv.preco = 30.70;
 Questão5
 Questão6
 Questão7
Livro.liv.codigo = 12345;
Respondido em 14/10/2020 05:17:47
 
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).
, (vírgula).
& (e comercial ou eitza).
* (asterisco).
 ∙ (ponto).
Respondido em 14/10/2020 05:17:51
Explicação:
Por definição, o operador que permite acessar os campos de uma variável struct é o ponto (.).
 
 Questão8
javascript:abre_colabore('38403','207658986','4146423844');
 
 
 
 
ESTRUTURA DE DADOS
4a aula
   
CCT0826_EX_A4_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
Nos métodos de ordenação interna, quais são aqueles classificados como tipo método simples?
Selection Sort, Shell Sort e Bubble Sort
Insert Sort, Bubble Sort e Shell Sort
 Selection Sort, Insert Sort e Bubble Sort
Shell Sort, Quick Sort e Heap Sort
Insert Sort, Bubble Sort e Quick Sort
Respondido em 14/10/2020 05:18:21
Gabarito
Comentado
Gabarito
Comentado
Gabarito
Comentado
 
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: 
v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
tam = 8 
e = -6 
É sabido que a mesma retornaria o valor -1, porque:
É o módulo do valor de e
 Porque ele não achou o elemento na coleção
É a posição do elemento e no vetor v
Seria o retorno do while
Seria o retorno do segundo if
Respondido em 14/10/2020 05:18:27
Explicação:
     Veja que para retornar -1 o return m; não foi executado. E para o return m; não poder ser executado,  o teste   if ( v[m] == e )  foi sempre
falso.  Logo, retornar -1 é o caso do elemento e = -6 não ser encontrado no vetor v.
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
 
 
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-se dizer que é uma função de ordenação:
Que utiliza o método bolha e realiza uma ordenação crescente nos elementos do vetor v.
Que utiliza o método seleçã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 inserçã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.
Respondido em 14/10/2020 05:18:32
 
Em uma pesquisa sequencial a lista deve estar?
desordenada somente da metade da lista até o final.
ordenada somente o primeiro da lista.
 ordenada ou desordenada.
sempre desordenada.
ordenada somente do início até a metade da lista.
Respondido em 14/10/2020 05:18:35
Explicação:
A busca sequencial pode se usada para listas ordenadas ou não ordenadas, não havendo qualquer restrição a parte ou à  totalidade da lista
na ordenação.  Já a busca binária só pode ser usada para listas ordenadas.
Gabarito
Comentado
 
Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um
vetor de nome v com n elementos.
...
{
int i, j, aux;
for (j = 1; j < n; j++)
for (i=j; i > 0 && v[i-1]> v[i]; i--) {
aux = v[i-1];
v[i-1] = v[i];
v[i] = aux;
}
}
 Questão3
 Questão4
 Questão5
...
Assinale o método ao qual o trecho de algoritmo pertence.
 Inserção
Quicksort
Heapsort
Bolha
Seleção
Respondido em 14/10/2020 05:18:42
Gabarito
Comentado
 
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 II, III e IV são corretas.
 Somente as afirmativas I e III são corretas.
Somente as afirmativas III e IV são corretas.
Somente as afirmativas I e II são corretas.
Somente as afirmativas I e IV são corretas.
Respondido em 14/10/2020 05:18:46
Explicação:
Analisando cada afirmativa :
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.
Correto. SEria uma busca sequencial.
II. A pesquisa sequencial é extremamente simples e eficiente quando o número de elementos do vetor for muito grande.
Falso. Se tivermos que procurar um elemento que está no fim do vetor ou que não seja encontrado, o tempo de execução será proporcional
ao número de elementos. Então, quanto maior a lista, mais tempo levaremos.
III. Na pesquisa binária, a cada interação do algoritmo o tamanho do vetor é dividido ao meio.
Correto.
IV. A pesquisa binária funciona corretamente quanto o conjunto de dados estiver desordenado.
Falso. Por definição, a busca binária só pode atuar em listas ordenadas.
Logo, apenas as afirmativas I  e   III estão corretas.
 
Marque a afirmativa correta para a "inserção incremental".
Os pivôs são escolhidos aleatoriamente.
A técnica é boa quando os dados ficam uniformemente distribuídos entre os seus compartimentos.
É um tipo de ordenação por intercalação
 Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
É um tipo de sequenciação por intercalação.
Respondido em 14/10/2020 05:18:55
Gabarito
Comentado
 Questão6
 Questão7
 
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 passopode 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
QuickSort
Bolha
MergeSort
 Inserção
Respondido em 14/10/2020 05:18:59
Gabarito
Comentado
 Questão8
javascript:abre_colabore('38403','207658993','4146423848');
 
 
 
 
ESTRUTURA DE DADOS
5a aula
   
CCT0826_EX_A5_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
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
I, III, IV
I, II, III, IV
 I, II, IV
I, II, III
Respondido em 14/10/2020 05:19:15
Explicação:
Analisando cada afirmativa :
 
I  - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
Verdadeiro.  As inserções vão ocorrendo do início do vetor (índice zero) em direção ao fim.
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.
Verdadeiro. Armazenam-se os dados  e controla-se a quantidade de dados na lista.
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.
Falso. A inserção pode ser no início,  no meio ou no final da lista. Na verdade, pode ocorrer inserção e remoção em qualquer  posição.
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Verdadeiro.  Uma lista pode ou não ter dados repetidos.
Resposta certa : As afirmativas I, II, IV estão certas
 
 Questão1
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
__________________________ é 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 Sequencial
Lista Linear Não Alocada
Lista Não Linear
Lista Linear Não Sequencial
Lista Linear de Alocação de Memória
Respondido em 14/10/2020 05:19:23
 
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
3
 -1
6
4
0
Respondido em 14/10/2020 05:19:28
Explicação:
Analisando
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
Está procurando pelo valor e = -6. Como se sabe pelo estudo da busca binária e olhando o código dado, temos que -6 não existe na lista
então a função irá retornar -1 (vide última linha da função). SE a busca tivesse sucesso, o teste do 1o. if no while seria verdadeiro e então o
índice m de v seria retornado. Mas não é o caso, pois -6 não foi encontrado.
 
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]; 
 Questão2
 Questão3
 Questão4
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].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[i] << 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 14/10/2020 05:19:36
Explicação:
Como L é um vetor de n elementos do tipo professor. Então, para percorrer o vetor de índice i temos que fazer L[i] seguido do ponto seguido
do campo, que pode ser matricula ou titulo.
Assiim, a opção correta é 
for (int i = 0; i < n; i++)
   cout << L[i].matricula << " " << L[i].titulo << endl;
 
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:
 Nenhuma afirmação está correta.
Está correta apenas a afirmativa II.
Estão corretas apenas as afirmativas I e III.
Estão corretas apenas as afirmativas I e II.
Está correta apenas a afirmativa I.
Respondido em 14/10/2020 05:19:45
Explicação:
Analisando cada afirmativa :
  I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100].
 Falso.  Podemos ter matrizes unidimensionais, tridimensionais, etc...
 II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor.
Falso.  Em C++ o índice inicial é zero. Logo, A[2] é o elemento de índice 2, ou seja, o 3o. elemento do vetor.
III. Uma string declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
Falso. B pode armazenar no máximo 29 caracteres que sejam dados, pois existe uma área para o caracter nulo.
Logo, todas as opções são falsas.
 
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
Registro
Função
 Vetor
Matriz
Respondido em 14/10/2020 05:19:53
Gabarito
Comentado
 
 Questão5
 Questão6
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.
Pilha Encadeada
Pilha Sequencial
 Lista Sequencial
Fila Sequencial
Lista Encadeada
Respondido em 14/10/2020 05:19:56
Gabarito
Comentado
 
 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 << "  "  << L.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[i].matricula << "  "  << L[i].nome[30] << endl;
for (int i = 0; i < n; i++)
   cout << L[i] << endl;
Respondido em 14/10/2020 05:20:08
Gabarito
Comentado
 Questão7
 Questão8
javascript:abre_colabore('38403','207658999','4146423849');
 
 
 
 
ESTRUTURA DE DADOS
6a aula
   
CCT0826_EX_A6_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EADCCT0826 - ESTRUTURA DE DADOS  201908017902
 
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 é :
Árvore
Fila
Grafo
Lista
 Pilha
Respondido em 14/10/2020 05:20:35
Gabarito
Comentado
 
Observar os quadros abaixo e reponder o que se pede:
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
O que aparecerá no topo da PILHA apos os comandos do quadro II?
SANTO_ANTONIO
 SANTA_CATARINA
SANTOS_AGOSTINHO
SANTA_GENOVEVA
SANTO_ESPEDITO
Respondido em 14/10/2020 05:20:48
Explicação:
FAzendo passo a passo...
empilha SANTO_ANTONIO e depois, SANTA_FILOMENA. Fica SANTA_FILOMENA no topo.
No item c) desempilha. Então, sai SANTA_FILOMENA da pilha.
No item d) empilha SANTO_AGOSTINHO. Então, fica SANTO_ANTONIO e logo no topo, SANTO_AGOSTINHO.
No item e) temos o elemento do topo que é SANTO_AGOSTINHO.
No item f) empilhamos SANTA_CATARINA.  Então, a sequência é SANTO_ANTONIO -> SANTO_AGOSTINHO - >SANTA_CATARINA (NO TOPO
DA PILHA)
No item g, destaca-se o elemento do topo que é  SANTA_CATARINA.
No item h) empilha-se SANTO_EXPEDITO .  Então, a pilha fica assim : SANTO_ANTONIO -> SANTO_AGOSTINHO - >SANTA_CATARINA -
> SANTO_EXPEDITO (este último no topo da pilha).
No item i) Desempilha-se o item do topo, ou seja, SANTO_EXPEDITO. Então, a pilha fica assim : SANTO_ANTONIO -> SANTO_AGOSTINHO -
>SANTA_CATARINA
No item j) empilha-se o valor do topo . Então, a pilha fica assim : 
SANTO_ANTONIO -> SANTO_AGOSTINHO - >SANTA_CATARINA -> SANTA_CATARINA
No item k) Desempilha-se um valor e este valor é empilhado. Sai SANTA_CATARINA, mas o mesmo é empilhado. Então : 
SANTO_ANTONIO -> SANTO_AGOSTINHO - >SANTA_CATARINA -> SANTA_CATARINA (no topo)
No item l)  empilha-se SANTA_GENOVEVA. Então, a pilha fica assim : SANTO_ANTONIO -> SANTO_AGOSTINHO - >SANTA_CATARINA -
> SANTA_CATARINA -> SANTA_GENOVEVA
) É
No item m) É desempilhado SANTA_GENOVEVA. A pilha fica : SANTO_ANTONIO -> SANTO_AGOSTINHO - >SANTA_CATARINA -
> SANTA_CATARINA
No item n) Pega-se o elemento do topo e o mesmo é empilhado. Então : 
ANTO_ANTONIO -> SANTO_AGOSTINHO - >SANTA_CATARINA -> SANTA_CATARINA - > SANTA_CATARINA  (no topo)
Logo, no topo da pilha temos SANTA_CATARINA
 
 
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 a ordem reversa dos de armazenamento de dados e alocação destes de forma contínua na memória.
Fila Sequencial
Pilha Encadeada
Lista Encadeada
 Pilha Sequencial
Lista Sequencial
Respondido em 14/10/2020 05:20:56
 
Pilha é uma estrutura de dados
Cujo acesso aos seus elementos segue tanto a lógica LIFO quanto a FIFO.
 Cujo acesso aos seus elementos segue a lógica LIFO.
Cujo acesso aos seus elementos ocorre de forma aleatória.
Que pode ser implementada somente por meio de vetores.
Que pode ser implementada somente por meio de listas.
Respondido em 14/10/2020 05:20:58
Explicação:
Pilha é uma lista que segue a lógica LIFO para inserções e remoções. Pode  ser implementada com vetores ou listas encadeadas.
Fila é uma lista que segue a lógica FIFO.
Gabarito
Comentado
 
Na estrutura de dados tipo pilha, há duas operações básicas para empilhamento e desempilhamento. Essas operações são conhecidas
como:
PULL e POP;
HEAP e POP;
Base e Topo;
PUSH e PULL;
 PUSH e POP.
Respondido em 14/10/2020 05:21:05
Gabarito
Comentado
 
Considere que, em uma estrutura de dados p do tipo pilha, inicialmente vazia, sejam executados os seguintes comandos:
push(p,10)
( )
 Questão3
 Questão4
 Questão5
 Questão6
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 80
 11 e 29
7 e 40
7 e 29
4 e 80
Respondido em 14/10/2020 05:21:11
Explicação:
Pilha é uma estrutura de dados em que insere-se em uma extremidade e retira-se da mesma extremidade. Assim, acompanhando cada
operação realizada tem-se :
Insere-se 10, 5, 3 e 40, nesta ordem, devido a operação push (empilhar)
Ao se fazer pop, temos que o último valor empilhado é desempilhado. Ou seja, retira-se o 40.
Depois empilha-se o 11, 4 e 7.  Após esses empilhamentos, a pilha fica  : 10,  5, 3, 11, 4 e 7, sendo 7 no topo da pilha e sendo 10 na área de
indice 0 (se usarmos vetor).
Ao se fazer mais um pop, o 7 é desempilhado.
Ao se fazer o último pop, o 4, que havia ficado no topo da pilha é desempilhado. Então, se fica com o 11 no topo da pilha.
Como os dados da pilha são 10, 5, 3 e 11 (este último no topo da pilha), se somarmos todos os elementos teremos 29.
Logo, a opção correta é  11 e 29.
 
 
A estrutura de dados do tipo pilha (stack) é um tipo abstrato de dado baseada no princípio:
De dividir para conquistar.
 Last In First Out (LIFO).
Da indiferença.
Da localidade de referência.
First In First Out (FIFO).
Respondido em 14/10/2020 05:21:19
Explicação:
A lógica da Pilha é: o último a entrar é o primeiro a sair logo, Last (último) In (dentro) First
(primeiro) Out (fora) -> LIFO.
Gabarito
Comentado
 
Respeitando as ordens de inserção e de retirada dos dados, uma estrutura de:
pilha é também denominada FIFO ou FILO.
 pilha é também denominada LIFO ou FILO.
fila é também denominada FIFO ou LIFO.
 Questão7
 Questão8
fila é também denominada LIFO ou LILO.
fila é também denominada FIFO ou FILO.
Respondido em 14/10/2020 05:21:27
Gabarito
Comentado
javascript:abre_colabore('38403','207659015','4146423856');
 
 
 
 
ESTRUTURA DE DADOS
7a aula
   
CCT0826_EX_A7_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
Um conjunto ordenado de itens a partir do qual podem ser eliminados itens em uma extremidade e no qual podem ser inseridos itens na
outra extremidade é denominado de
árvore.
pilha.
lista simples.
lista encadeada.
 fila.
Respondido em 14/10/2020 05:21:42
Explicação:
Por definição, fila é uma lista ordenada que segue a lógica FIFO, ou seja, o primeiro a entrar será o primeiro a sair. Assim, insere-se no fim e
retira-se do início da fila.
 
IFMT - Técnico em Tecnologia 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?
 [4-6-8-10-1-2]
[2-3-4-6-8-10]
[2-1-3-4-6-8]
[3-4-6-8-10]
[3-4-6-8-10-1]
Respondido em 14/10/2020 05:21:47
Explicação:
Temos a fila inicialmente 
  3 4 6 8  10
Após inserir 1, a fila ficará :  3 4 6  8 10 1
Após isnerir 2 : 3 4 6  8 10 1 2
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.aspjavascript:voltar();
Após uma remoção :  4 6  8 10 1 2
 
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 final apontar para zero.
Quando os apontadores de final e início apontarem para zero.
Quando o apontador de início apontar para zero.
Quando o apontador de final menos um (final-1) for igual ao inicio.
 Quando o apontador de posição final for igual ao início.
Respondido em 14/10/2020 05:21:51
Explicação:
Suponha que nossa fila mora em um vetor fila[0..N-1].  (A natureza dos elementos do vetor é irrelevante: eles podem ser inteiros,
bytes, ponteiros, etc.)  Digamos que a parte do vetor ocupada pela fila é
fila[p..u-1] .
O primeiro elemento da fila está na posição p e o último na posição u-1. 
A fila está vazia se  p == u  e cheia se  u == N.  
 
 
         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.
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 buffer para gravação de dados em fila.
Fila de arquivos para impressão e fila de pessoas no caixa de um supermercado.
Fila de pessoas para tirar o visto e fila de pessoas para usar o caixa eletrônico.
Respondido em 14/10/2020 05:21:54
Gabarito
Comentado
 
   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)  {
   cout << "Removido o agente " <<     F.v[F.inicio];
 Questão3
 Questão4
 Questão5
   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)  {
       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++;
       }
}
 
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];
     }
}
Respondido em 14/10/2020 05:22:02
Gabarito
Comentado
 
 Questão6
Complete os espaços na afirmativa abaixo e assinale a alternativa que apresenta as respostas corretas: O escalonamento .................... é do
tipo.................., em que o processo que chegar primeiro na fila de pronto é o escolhido para ser executado.
 FIFO, não-preemptivo.
Circular, não-preemptivo.
LIFO, não-preemptivo.
SJF (Shortest-Job-First), preemptivo.
Por prioridades, preemptivo.
Respondido em 14/10/2020 05:22:09
Explicação:
O algoritmo de escalonamento FIFO (First in, first out, em português: "O primeiro a entrar é o primeiro a sair, sigla PEPS), ou FCFS(First
come, first served, em português: "O primeiro a chegar é o primeiro a ser servido") é conhecido popularmente por Algoritmo de Fila Simples,
é uma estrutura de dados que apresenta o seguinte critério: O primeiro elemento a ser retirado é o primeiro que tiver sido inserido, é
um algoritmo de escalonamento não preemptivo que entrega a CPU os processos pela ordem de chegada. Ele executa o processo como
um todo do inicio ao fim não interrompendo o processo executado até ser finalizado, então quando um novo processo chega e existe um
ainda em execução ele vai para uma fila de espera. Esta fila de espera nada mais é do que uma fila que organiza os processos que chegam
até eles serem atendidos pela CPU.
Neste escalonamento todos os processos tendem a serem atendidos (por isso evita o fenômeno do starvation) ao menos que um
processo possua um erro ou loop infinito. O loop infinito irá parar a máquina, pois com o FIFO não terá como dar continuidade a execução
dos processos que estão aguardando na fila de espera.
O algoritmo FIFO não garante um tempo de resposta rápido pois é extremamente sensível a ordem de chegada de cada processo e dos
antecessores (se existirem) e se processos que tendem a demorar mais tempo chegarem primeiro o tempo médio de espera e o
turnaround acabam sendo aumentados.
 
Usa-se um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas operações de remoção e inserção
podemos afirmar que:
Um vetor é uma estrutura base correta para esta implementação, já que está imune a fenômenos como esgotamento de
memória.
A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que implementam o algoritmo LIFO.
A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem ordenados isto não afetará a estrutura.
Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas sequenciais.
 A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada. A solução é o uso da
fila circular.
Respondido em 14/10/2020 05:22:13
Gabarito
Comentado
 
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
0
15
6
5
Respondido em 14/10/2020 05:22:18
 Questão7
 Questão8
Gabarito
Comentado
javascript:abre_colabore('38403','207659025','4146424633');
 
 
 
 
ESTRUTURA DE DADOS
8a aula
   
CCT0826_EX_A8_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
Podemos dizer que uma lista encadeada tem as seguintes características:
i) conhecida como lista ligada.
ii) seus nós são responsáveis para manter a sequência da lista.
iii) o último nó deve apontar para NULL.
Assinale a alternativa que informa as afirmativas corretas.
Somente a afirmativa i esta correta.
Somente as afirmativas i e ii estão corretas.
Todas as afirmativas estão incorretas.
 Todas as afirmativas estão corretas.
Somente a afirmativa iii esta correta.
Respondido em 14/10/2020 05:22:34
Gabarito
Comentado
 
Sobre listas simplesmente encadeadas, é INCORRETO afirmar que :
o ponteiro do último nó é NULL
 possuem tamanho fixo
são acessadas através de um ponteiro para o primeiro nó da lista
os nós da lista são alocados dinamicamente.
podem implementar pilha e fila dinâmicas
Respondido em 14/10/2020 05:22:40
Explicação:
Por definição, uma lista encadeada não tem tamanho pré-definido, pois os nós da lista são alocados em tempo de execução, de acordo
com a demanda.
 
   Tenho uma lista não ordenada de clientes em que registro apenas a matrícula, o nome,  o endereço e o telefone de cada cliente. Como
 Questão1
 Questão2
 Questão3
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
não tenho limites para o crescimento da minha lista, como posso implementar a inserção deum novo cliente na lista, sabendo que cada
cliente é do tipo Cliente e a lista é do tipo Lista assim definidos :
struct Cliente {
     long int matricula;
      string nome, endereco, tel;
};
struct Lista {
                           Cliente c;
                           struct Lista *link;
                  };
 Lista * insereCliente(Lista *p, Cliente cl)
{
      Lista *novo = new Lista;
      novo->c = cl;
      novo->link = p;
     return novo;
}
 Lista * insereCliente(Lista *p, Cliente cl)
{
      Lista *novo = new Lista;
      novo.c = cl;
      novo.link = p;
     return novo;
}
Lista  insereCliente(Lista *p, Cliente cl)
{
      Lista  novo[];
      novo[0].c = cl;
      novo[0].link = p;
     return novo;
}
                    
Lista * insereCliente(Lista *p, Cliente cl)
{
      Lista *novo ;
      novo->c = cl;
      novo->link = p;
     return novo;
}
Lista * insereCliente(Lista *p)  {
      Lista *novo = new Lista;
     Cliente cl;
      novo->c = cl;
      novo->link = p;
     return novo;
}
Respondido em 14/10/2020 05:22:48
Gabarito
Comentado
 
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->5.60;
pt->próximo->valor=5.60;
 pt->valor=5.60;
pt.valor->5.60;
Respondido em 14/10/2020 05:22:52
Gabarito
Comentado
 
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->5.60;
pt->próximo->valor=5.60;
pt.valor->5.60;
pt->próximo.valor=5.60;
 pt->valor=5.60;
Respondido em 14/10/2020 05:23:01
Explicação:
O codigo será:
 Questão4
 Questão5
pt->valor=5.60;
 
    Tei Ping , famosa  cabeleireira das estrelas,  possui uma lista não ordenada de clientes em que registra apenas o nome, endereço e o
telefone de cada cliente. Como não se pode pré-definir um limite para o tamanho da lista, como se pode implementar a inserção de um
novo cliente na lista ? Sabe-se  que cada  cliente é do tipo Cliente  e a lista é do tipo List assim definidos :
 
struct Cliente {
     long int matricula;
      string nome, endereco e tel;
};
struct List {
                           Cliente  p;
                           struct List *link;
                  };
List * insereCliente(List *i)  {
      List *novo = new List;
     Cliente c;
      novo->p =  c;
      novo->link = i;
     return novo;
}
List  insereCliente(List *i, Cliente c)
{
      List  novo[];
      novo[0].p = c;
      novo[0].link = i;
     return novo;
}
 List * insereCliente(List *i, Cliente c)
{
      List *novo = new List;
      novo->p = c;
      novo->link =i;
     return novo;
}
List * insereCliente(List  *i, Cliente c){
      List *novo ;
      novo->p = c;
      novo->link = i;
     return novo;
}
 Questão6
 List * insereCliente(List *i, Cliente c)
{
      List *novo = new List;
      novo.p = c;
      novo.link = i;
     return novo;
}
Respondido em 14/10/2020 05:23:09
Explicação:
Analisando a resposta certa :
List * insereCliente(List *i, Cliente c)
{
      List *novo = new List;    //aloca memória para novo nó
      novo->p = c;    //acessa o campo p da área apontada por novo e atribui o cliente c ao campo p
      novo->link =i;   //faz o link do novo nó apontar para onde i está apontando
     return novo;    //retorna o endereço do novo nó
}
Logo, esta função insere um novo nó no início de uma lista simplesmente encadeada e retorna o ponteiro para o início da lista
resultante.
Analisando as demais opções, que estão erradas :
2o. item .... Opção errada : faltou alocar memória
3o. item .... Opção errada : Cliente c não está definido.
4o. item .... Opção errada :  Usa ponto quando deveria ser o operador seta
5o. item .... Opção errada : Muitos erros... Usa vetor sem definir tamanho e trabalha com  o elemento de índice zero de novo, acessando os
campos com ponto.
 
Considere uma lista simplesmente encadeada com placas de carros.  Assinale a opção que, corretamente,
imprime todas as placas da lista. Considere :
struct no {
                 string placa;
                 struct no *link;
};
no *p;    //p aponta para o início da lista
 
 
void imprimir(no *p) {
    while (p != NULL)    {
           cout << pàplaca;
   }
}
 
 
void imprimir(no *p) {
 Questão7
   while (p != NULL)    {
           cout << p.placa;
          p = p.link;
   }
}
 
void imprimir(no p) {
   while (p != NULL)    {
           cout << pàno;
          p = pàlink;
    }
}
 
void imprimir(no *p) {
   if  (p != NULL)    {
           cout << pàplaca;
          p = pàlink;
   }
}
 void imprimir(no *p) {
   while (p != NULL)    {
           cout << pàplaca;
          p = pàlink;
}
}
 
Respondido em 14/10/2020 05:23:22
Gabarito
Comentado
 
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); }
Nenhuma das anteriores. O programa possui um erro de sintaxe.
8
 -2
5
2
Respondido em 14/10/2020 05:23:30
Explicação:
Analisando passo a passo : 
int main() {
int x, *p, y;
x = 2;
p = &x;   // p aponta para x, sendo que x recebeu 2
y = *p;   //y recebeu o conteúdo da área apontada por p, ou seja, y recebeu *p que é 2
 Questão8
y = 5;   //y recebeu 5
(*p)++;  //A área apontada por p recebeu 3 Ou seja, x recebeu 3
(*p) = (*p) - y;   //*p, que é x recebeu 3 - 5. Ou seja, *p recebeu -2
return(0);
}
Como p aponta para x e *p recebeu -2, então x recebeu -2
javascript:abre_colabore('38403','207659031','4146424737');
 
 
 
 
ESTRUTURA DE DADOS
9a aula
   
CCT0826_EX_A9_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
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:
20 5 8
10 3 5 8 20
5 8
10 3 20
 5 8 20
Respondido em 14/10/2020 05:23:50
Explicação:
 insere(10), insere(3), insere(5), insere(8), remove(), remove(), insere(20),
10-> 3 -> 5 -> 8 após inserir 10,3,5 e 8. Inserção no fim
Depois do 1o. remove, temos 3->5->8
Depois do 2o. remove temos 5 -> 8
Ao ocorrer o último insere temos  : 5 -> 8 - > 20, sendo que 5 esta no início e 20 no fim
 
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;
  ...
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
  temp->info = valor;    
  temp->prox = ptr; 
  return temp;         
}
 InsereNoFrente
BuscaNaLista
InsereNoFim
RemoveNo
ListaNo
Respondido em 14/10/2020 05:23:58
Gabarito
Comentado
 
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,
7 e 29.
11 e 80.
4 e 80.
7 e 40.
 11 e 29.
Respondido em 14/10/2020 05:24:05
Explicação:
Passo a Passo:
entra 10 // 10
entra 5 // 5 / 10
entra 3 // 3 / 5/ 10
entra 40 // 40 / 5 /10
retira 40 // 3 / 5 /10
entra 11 // 11 / 3 / 5 /10
entra 4 // 4 /11 / 3 / 5 /10
entra 7 // 7 / 4 / 11 / 3 / 5 /10
retira 7 // 4 / 11 / 3 / 5 /10
retira 4 // 11 / 3 / 5 / 10
Resultado da pilha: 11 / 3 / 5 / 10
 Questão3
Topo: 11
Somatorio da pilha é: 29
 
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;
p *no=new no;
 no *p=new no;
p *no -> new no;
no p -> new no;
Respondido em 14/10/2020 05:24:15
Gabarito
Comentado
 
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 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.
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 14/10/2020 05:24:18
Explicação:
Na estrutura do tipo FIFO, as informações são inseridas no início e removidas
do final.
Falso.  Fila segue a lógica FIFO, ou seja, o primeiro a entrar será o primeiro a sair.
Logo, insere no fim e retira do início da fila.
Na estrutura do tipo LIFO, as informações são inseridas no início e removidas
do final.
Falso.  Pilha segue a lógica LIFO, o último a entrar será o primeiro a sair.  Insere-se
no topo   e retira-se do topo , ou seja, da mesma extremidade.
Na estrutura das Pilhas a manipulação dos dados sempre se dá no topo.
Verdade. SEgue-se a lógica LIFO.
Encadeamento estático e dinâmico apresentam o mesmo funcionamento de
alocação na estrutura do tipo PILHA.
Falso.  No encadeamento estático a alocação é contígua e ocorre antes da
execução.  No encadeamento dinâmico a alocação de memória ocorre em tempo de
execução e o armazenamento é encadeado.
A estrutura do tipo LIFO sempre realiza a remoção do elemento mais antigo
inserido.
 Questão4
 Questão5
 
Falso.  A remoção se dá no último inserido, ou seja, o mais novo inserido na pilha.
 
 
 
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 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.
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 armazenar o resto da divisão do número por 2 no campo dado do novo nó .
 É 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ó.
Respondido em 14/10/2020 05:22:02
Gabarito
Comentado
 
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->próximo->proximo)pt=pt->próximo;
while(pt != null)pt=pt->próximo;
while(próximo)pt=próximo;
while(pt->próximo != null)pt=pt->próximo->proximo;
 while(pt->próximo)pt=pt->próximo;
Respondido em 14/10/2020 05:22:11
Explicação:
O código será:
while(pt->próximo)pt=pt->próximo;
 
 Questão6
 Questão7
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 está correta
 IV e V estão corretas.
I e II estão corretas.
I e IV estão corretas
III e V estão corretas
Respondido em 14/10/2020 05:24:44
Gabarito
Comentado
 Questão8
javascript:abre_colabore('38403','207659036','4146424742');
 
 
 
 
ESTRUTURA DE DADOS
10a aula
   
CCT0826_EX_A10_201908017902_V1  05/10/2020
JULIANA CIOLA BELTRAMI 2020.3 EAD
CCT0826 - ESTRUTURA DE DADOS  201908017902
 
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______.
Alocação estática de memória
Declaração de função
 Alocação dinâmica de memória
Declaração de vetor
Declaração de matriz
Respondido em 14/10/2020 05:25:01
Explicação:
Se for necessário liberar a memória ocupada por essas variáveis, é preciso recorrer à função free.
A função free desaloca a porção de memória alocada por malloc.
A instrução free (ptr) avisa ao sistema que o bloco de bytes apontado por ptr está disponível para reciclagem.
 
   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;
   if (p != NULL)
       p.elink = novo;
   p = novo;
n 
   
   nodupla *novo;
 Questão1
 Questão2
https://simulado.estacio.br/alunos/inicio.asp
javascript:voltar();
 
    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;
 
n  nodupla *novo;
 
    novo = new nodupla;
    novo->dado = valor;
    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;
 p->elink = novo;
    p = novo;
 
Respondido em 14/10/2020 05:25:10
Gabarito
Comentado
 
O armazenamento dedados na memória do computador é feito de forma ordenada, utilizando-se estruturas e regras de operações. Das
alternativas a seguir, assinale a correta:
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.
 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.
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.
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.
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.
Respondido em 14/10/2020 05:25:17
Explicação:
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.=è FALSO =è Ela
possui apenas uma entrada, chamada de topo, a partir da qual os dadosentram e saem dela. Exemplos de pilhas são: pilha de
pratos, pilha de livros, pilhade alocação de variáveis da memória, etc. Uma fila é uma lista linear do tipo FIFO - First In First Out, o primeiro
elemento a entrar será o primeiro a sair
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.=è FALSO
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. .=è FALSO
 Questão3
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. ===> VERDADE
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. ===>
FALSO ===> Fila, o valor lido, sempre é passado para o começo, ou seja, esse valor
aponta para as próximas posições, e quando for feita a exclusão, é só deletar esse
valor do começo. Abaixo uma imagem que representa a Fila (FIFO). Pilha, sempre o
último valor lido, ficará na `primeira¿ posição da lista, dessa forma, quando for feita a
exclusão, um auxiliar aponta para a próxima posição, e a posição atual, é excluída.
Abaixo uma imagem que representa a Pilha (LIFO)
 
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;
Matriz
Fila
Lista encadeada
Pilha
 Lista duplamente encadeada
Respondido em 14/10/2020 05:25:26
 
Assinale a alternativa que traz uma afirmação incorreta sobre as diversas implementações da estrutura de dados lista.
A lista simplesmente encadeada é adequada para a resolução de problemas em que os elementos da lista devem ser percorridos
em apenas uma direção.
A estrutura do nó da lista duplamente encadeada deve, obrigatoriamente, possuir um ponteiro para o nó anterior e outro para o nó
seguinte, permitindo movimentação para frente e para trás.
A lista sequencial deve ser implementada com o uso de estruturas de vetor, pois essas essas estruturas utilizam o conceito de
alocação estática e dispõem seus elementos de forma contígua na memória.
 Listas encadeadas em geral são preferíveis em relação às listas sequenciais, especialmente por serem mais eficientes e sempre
utilizarem menos espaço de armazenamento na memória.
A lista circular é toda lista, independente do tipo de alocação, em que é formado um ciclo entre seus elementos. Por exemplo,
quando o último elemento da lista aponta para o primeiro.
Respondido em 14/10/2020 05:25:36
Explicação:
Analisando cada item.
>> A estrutura do nó da lista duplamente encadeada deve, obrigatoriamente,
possuir um ponteiro para o nó anterior e outro para o nó seguinte, permitindo
movimentação para frente e para trás.
      Afirmativa correta, que segue a definição de lista duplamente encadeada.  Não
marcar o item.
 >> A lista simplesmente encadeada é adequada para a resolução de problemas
em que os elementos da lista devem ser percorridos em apenas uma direção.  
 Questão4
 Questão5
     Afirmativa correta.  Em uma lista simplesmente encadeada existe ponteiro para
o início da lista. Por isso, não dá para percorrer tal lista  do fim para o início.  Nâo
marcar o item.
>> A lista sequencial deve ser implementada com o uso de estruturas de vetor,
pois essas essas estruturas utilizam o conceito de alocação estática e dispõem
seus elementos de forma contígua na memória.
 
     Afirmativa correta. O vetor pode até ser dinâmica, mas usualmente usa
alocação estática de memória e é o recurso usado na implementação das listas
sequenciais. Não marcar o item.
>> A lista circular é toda lista, independente do tipo de alocação, em que é
formado um ciclo entre seus elementos. Por exemplo, quando o último elemento
da lista aponta para o primeiro.
 
     Afirmativa correta. 
>> Listas encadeadas em geral são preferíveis em relação às listas sequenciais,
especialmente por serem mais eficientes e sempre utilizarem menos espaço de
armazenamento na memória.
      Afirmativa falsa porque as listas encadeadas não ocupam menos espaço que
as listas sequencias. Cada nó de uma lista simplemente encadeada, por exemplo,
tem um campo de dado e um campo que é ponteiro.
Marcar esta afirmativa.
 
 
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.
frente, apenas.
 frente e para trás, apenas.
trás, apenas.
Respondido em 14/10/2020 05:25:50
Gabarito
Comentado
 
 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;
 Questão6
 Questão7
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, logo após o Z.
X, logo após o Z, e Y, logo após o X.
X, antes do Z, e Y, logo após o Z.
 Y, logo após o Z, e X, logo após o Y.
Y, antes do Z, e X, antes do Y.
Respondido em 14/10/2020 05:23:28
Gabarito
Comentado
 
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
Listas simplesmente encadeadas
Árvore
Listas Circulares
Grafo
Respondido em 14/10/2020 05:23:40
Explicação:
O

Outros materiais