Unidade curricular: Estrutura de dados Alunos: Paulo Vitor e Rodrigo Veloso
1. O que é uma estrutura de dados?
R: Uma estrutura de dados é uma maneira organizada de armazenar e
gerenciar dados em um computador.
2. O que é uma estrutura de dados linear? Cite alguns exemplos.
R: Estruturas de dados lineares são formas de organizar elementos
sequencialmente, como listas, pilhas, filas, deques e listas circulares. Cada uma tem suas próprias características, como acesso sequencial em listas, política LIFO em pilhas, política FIFO em filas, inserção e remoção em ambas as extremidades em deques, e a formação de um ciclo em listas circulares. Essas estruturas ajudam a armazenar e manipular dados de maneira eficiente para atender a diferentes necessidades.
3. Quais são algumas aplicações de estruturas de dados?
R: Estruturas de dados são utilizadas para organizar e manipular dados de
forma eficiente. Alguns exemplos incluem listas, pilhas, filas e árvores. Elas têm aplicações em áreas como gerenciamento de memória, algoritmos de busca e ordenação, controle de fluxo, bancos de dados e redes sociais.
4. Qual é a diferença entre estrutura de arquivo e estrutura de
armazenamento?
R: A estrutura de arquivo está relacionada à forma como os dados são
organizados dentro de um arquivo específico. Isso significa como os dados são armazenados, acessados e como eles se relacionam uns com os outros. Já a estrutura de armazenamento refere-se à forma como os dados são organizados fisicamente em um dispositivo de armazenamento, como um disco rígido ou um SSD. Isso diz respeito à maneira como os dados são armazenados em setores ou blocos, como são acessados e como são gerenciados pelo hardware e pelo sistema de arquivos.
5. O que é uma estrutura de dados de lista vinculada?
R: Uma lista vinculada é uma estrutura de dados em que os elementos são
organizados em nós que possuem um valor e um ponteiro para o próximo nó. Isso permite a inserção, exclusão e acesso eficiente aos elementos.
6. As listas vinculadas são consideradas estruturas de dados lineares ou
não lineares?
R: As listas vinculadas são estruturas de dados lineares, pois os elementos
são organizados em uma sequência ordenada e acessados linearmente. Cada elemento, chamado de nó, contém um valor e um ponteiro que aponta para o próximo nó na sequência. Embora possam ser unidirecionais ou bidirecionais, as listas vinculadas seguem uma ordem linear definida.
7. O que é uma lista duplamente vinculada? Dê alguns exemplos.
R: Uma lista duplamente encadeada, é uma estrutura de dados na qual
cada nó possui dois ponteiros, um para o nó anterior e outro para o próximo nó da sequência. Dessa forma, a lista pode ser percorrida em ambas as direções, do início ao fim ou do fim ao início.
Exemplo: Sistema de histórico de navegação em um site:
Cada página visitada pode ser representada como um nó na lista.
O ponteiro "próximo" aponta para a próxima página visitada, e o ponteiro
"anterior" aponta para a página visitada anteriormente.
Isso permite que o usuário navegue para a página anterior ou posterior com facilidade.
8. Como você referência todos os elementos em uma matriz
unidimensional?
R: Em uma matriz unidimensional, também conhecida como vetor, cada
elemento pode ser referenciado por seu índice, que representa sua posição na matriz. Os índices geralmente começam em 0 para o primeiro elemento e aumentam em incrementos de 1 para cada elemento subsequente.
9. O que são estruturas de dados dinâmicas? Cite alguns
R: Estruturas de dados dinâmicas são estruturas que permitem o
armazenamento e manipulação de dados de forma flexível, permitindo que o tamanho dos dados seja alterado durante a execução de um programa. Exemplo: Filas, Pilhas e Árvores.
10. O que é uma pilha?
R: Uma pilha, é uma estrutura de dados que armazena elementos em uma
ordem específica, conhecida como LIFO (Last-In, First-Out), que significa "o último a entrar é o primeiro a sair".
11. Onde as pilhas são usadas?
R: Expressões aritméticas, gerenciamento de memória, navegação em
árvores e grafos etc.
12. O que é uma estrutura de dados de fila?
R: Uma estrutura de dados de fila, também conhecida como fila, é uma
coleção ordenada de elementos onde a inserção dos novos elementos ocorre no final da fila, e a remoção dos elementos ocorre no início da fila. Em outras palavras, é uma estrutura de dados que segue a política de "primeiro a entrar, primeiro a sair" (FIFO - First-In-First-Out). Liste alguns aplicativos da estrutura de dados da fila.
R:
13. O que é um desenfileiramento?
R: O desenfileiramento é a operação de remoção do primeiro elemento de
uma fila. É uma ação fundamental em estruturas de dados chamadas filas, onde os elementos são inseridos no final e removidos no início da fila.
14. Quais operações podem ser realizadas em filas?
15. Quais são as vantagens do heap sobre uma pilha?
R: As vantagens mais relevantes são a flexibilidade, alocação dinâmica de
memória e acesso a longo prazo.
16. Onde a estrutura de dados da pilha pode ser usada?
R: A pilha é uma estrutura de dados que pode ser usada em várias
situações. É utilizada para gerenciar chamadas de função, inverter a ordem dos elementos, avaliar expressões matemáticas, realizar busca em profundidade e implementar recursos de desfazer.
17. Qual algoritmo de classificação é considerado o mais rápido? Por quê?
R: Não existe um algoritmo de classificação universalmente considerado o
mais rápido. A velocidade de um algoritmo de classificação depende de vários fatores, incluindo o tamanho dos dados, a distribuição dos dados, os recursos computacionais disponíveis e o próprio algoritmo em questão. Mas podemos considerar o MergeSort um dos mais rápidos, porque ele tem um desempenho estável em todos os casos, mas pode exigir mais memória.