Buscar

Av2 - estruturadedados

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

Prévia do material em texto

Av2 – Estrutura de dados
1) Como característica fundamental das pilhas dinâmicas temos a inserção e remoção de nós do topo(uma variável do tipo do nó). Sendo assim podemos afirmar que a cada novo nó inserido constituído de um ponteiro também do tipo do nó e um dado, deverá:
Ter seu ponteiro apontando para o nó anterior, quando existir o nó anterior
2) Escreva uma função que permita inserir dados em uma lista duplamente encadeada de forma seqüencial, com o preenchimento de 3 nós, baseado na estrutura apresentada. A função deverá receber o nó inicial e não retornar nada.
struct num_letra {
int num;
char letra;
struct num_letra *ant, *post;
};
void insere(num_letra *no){ num_letra *aux; for (int i=0;i<3;i++){ no->num = i; no->letra= i+65; if (i==0){ no->ant=NULL; no->post=NULL; }else{ aux= no-1; aux->post=no; no->ant=aux; no->post=NULL; } no++; } }
3)Variáveis são pedaços de memórias onde dados são armazenados durante a execução de um programa. Na linguagem C++ uma variável pode ser LOCAL ou GLOBAL. De acordo com as características das variáveis LOCAIS, marque a alternativa ERRADA.
Uma variável local, uma vez criada só deixa de existir quando o programa termina. 
4) Podemos definir registros (structs) como:
Conjunto de dados heterogêneos;
5 - Segundo o material apresentado e as aulas tele, explique as características principais das listas, seus tipos e diferencie-as. 
As listas são caracterizadas pela sua forma de armazenamento e algoritmos de manipulação, onde algumas operações fundamentais as definem e distinguem. As estruturas são: Listas, Filas e Pilhas. As operações fundamentais são: Inserir, Retirar, Verificar Cheia, Verificar Vazia e Inicializar. Sendo outras operações como busca e ordenação são muito aplicadas. A diferença fundamental entre as mesmas está na retirada, onde as listas a retirada ocorre em qualquer posição a partir de uma busca, nas filas o primeiro a entrar é sempre o primeiro a sair FIFO, e nas pilhas o último a entrar é sempre o último a sair LIFO.
6) Chama-se “membros” os elementos que compõe uma estrutura (struct). E para acessá-los utiliza-se o operador ponto (.) . Suponha que as seguintes declarações tenham sido feitas: 
struct atleta { 
float altura; 
float peso; 
}; 
atleta Paulo; 
atleta Marcos; 
Marque a única alternativa contendo uma atribuição CORRETA: 
 Paulo.altura=1.80; 
7) Como característica fundamental das listas dinâmicas duplamente encadeadas temos:
Possuir um nó com no mínimo três elementos, sendo um deles um ponteiro para o próximo nó e outro para o anterior. 
8) A estrutura e a função apresentadas estão incompletas. 
 
struct num_letra {
int num;
char letra;
struct num_letra *ant, _______ ;
};
num_letra *funcao(num_letra *ini){
       num_letra *aux, *fim;
       aux = ini;
       while(aux){
             if (aux->post==________){
                    cout<<aux->letra;
                    fim= aux;
                    aux= NULL;
             }else{
                    cout<<aux->letra;
                    aux++;
             }
       }
       _________________________;
}
 
Qual das opções completa os espaços destacados respectivamente, de forma que a função percorra todos os nós da posição recebida até o fim , exibindo apenas a letra armazenada e retorne o ponteiro do último nó.
*post - NULL - return fim
9) Dentre os algoritmos de pesquisa ou busca em vetores, os mais difundidos são: a busca sequencial e a busca binária. Leia as sentenças abaixo e marque a assinale a resposta correta: 
I. Para um vetor que armazena de forma ordenada uma quantidade bastante considerável de dados, se considerarmos que o dado a ser procurado não encontra-se no vetor, o algoritmo da busca sequencial será mais rápido em chegar a esta conclusão, que o algoritmo da busca binária. 
II. O algoritmo da busca binária baseia-se no princípio da “divisão e conquista”, isto é, o espaço de busca é dividido em espaços menores de modo a simplificar a tarefa a ser realizada. 
III. Para um vetor que armazena de forma ordenada uma quantidade bastante considerável de dados, se considerarmos que o dado a ser procurado encontra-se entre as primeiras posições do vetor, o algoritmo da busca sequencial será mais rápido em encontrar o dado que o algoritmo da busca binária. 
IV. Quando é realizada uma busca em um vetor, normalmente não se tem ideia em que posição o dado a ser buscado se encontra no vetor, ou mesmo se o dado buscado não está no vetor. E sendo assim, no caso de vetores ordenados o algoritmo de busca binária é muito mais eficiente que o algoritmo de busca sequencial, na maioria dos casos.
Apenas a I está errada.
10) Das opções apresentadas qual representa a estrutura de dados Fila:
FIFO;

Outros materiais