# Estrutura de Dados #
Aula 02 - Estrutura de dados e TAD
Prof. Leinylson Fontinele Pereira
Na aula anterior...
Apresentação da disciplina
Plano de aula
Introdução a Estrutura de Dados
11:27 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Introdução
11:27 3 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
O que vamos aprender?
Estruturas de Dados
TAD
11:27 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
O que é Estrutura de Dados?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
É a disciplina que trabalha com estruturas mais complexas em relação aos tipos dedados em C++, para organizar os dados de acordo com um determinado problema.
Benefícios? Organização da informação
Melhora o desempenho
Proporciona o reuso de código
Proporciona interoperabilidade
Diminui custos
Tipo de Dados
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Define o conjuntos de valores (domínio) que uma variável pode assumir.
O dado pode ser um tipo padrão do próprio compilador.
No caso de C++ uma variável do tipo int, char, double ou float.
Exemplo:𝑖𝑛𝑡 → ⋯− 2,−1 , 0 , 1, 2, 3…
Tipo de Dados
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Para cada dado armazenado no computador, devemos definir o conjunto de valoresque ele pode assumir. Denominamos a esse conjunto de tipo de dados.
Por exemplo, um dado (variável) do tipo lógico pode assumir o valor verdadeiro oufalso .
Tipo Básicos de Dados
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
O tamanho e a faixa dos dados dependem do processador eda implementação do compilador
Estruturas de Dados
11:27 10 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
O que é Estrutura de Dados?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Relacionamento lógico entre os tipos de dados.
A implementação de um TAD escolhe uma estrutura de dados (ED) pararepresentá-lo. Cada ED pode ser construída a partir de tipos básicos (inteiro, real,caracter) ou estruturada (array, registro) de uma determinada linguagem deprogramação.
Estruturas de Dados
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
As estruturas de dados de tipos de dados estruturadas se dividem em homogêneos(vetores e matrizes) e heterogêneos (registros).
As estruturas homogêneas são conjuntos de dados formados pelo mesmo tipo dedado primitivo.
As estruturas heterogêneas são conjuntos de dados formados por tipos de dadosprimitivos diferentes (campos do registro) em uma mesma estrutura.
A escolha de uma estrutura de dados apropriada pode tornar um problemacomplicado em um de solução bastante trivial.
Estruturas e Dados
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
int
float
double
char
Struct
Listas
Filas
Pilhas
Vetores
Matrizes
Árvores
Estruturas Dados
Tipos Abstratos de Dados
11:27 14 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
O que é Tipos Abstratos de Dados (TAD)?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
É um tipo de modelo ou domínio que encapsula outros tipos de dados. Um TADpossui um algoritmo para acessar, criar e efetuar operações relacionadasdiretamente ao formato do TAD criado.
TAD: Abstração
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
“É a habilidade de concentrar nos aspectos essenciais de um contexto qualquer,ignorando características menos importantes ou acidentais”.
Quando definimos um TAD, nos concentramos nos aspectos essenciais do tipo dedado (operações) e nos abstraímos de como ele foi implementado.
TAD: Encapsulamento
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Não é preciso saber os detalhes de implementação do TAD. Seu usuário irá sepreocupar apenas com base nas operações oferecidas (interface)
O TAD provê um mecanismo de encapsulamento de um tipo de dado, ondeseparamos a especificação (aspecto externo) de sua implementação (aspectointerno)
Estruturas (Structs) em C / C++
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Uma estrutura é uma coleção de uma ou mais variáveis, possivelmente de tiposdiferentes, colocadas juntas sob um único nome para manipulação conveniente
Por exemplo, para representar um aluno são necessárias as informações nome,matrícula, conceito, ao invés de criar três variáveis, é possível criar uma únicavariável contendo três campos.
Em C, usa-se a construção struct para representar esse tipo de dado
Para que serve uma struct em C?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Suponha que você foi contratado por uma grande empresapara criar um aplicativo de C que armazena todas asinformações dos funcionários, um banco de dados.
Para que serve uma struct em C?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Vamos supor que tem 300 funcionários: Como você faria para
armazenar as idades deles?
𝑖𝑛𝑡 𝑖𝑑𝑎𝑑𝑒𝑠[300];
Para que serve uma struct em C?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
E os nomes? Vamos separar 50 caracteres para cada pessoa.
Temos que ter 300 vetores (strings), cada um com 50 caracteres. Ficaria:
𝑐ℎ𝑎𝑟 𝑛𝑜𝑚𝑒𝑠[300][50];
O mesmo para sua data de admissão, o salário de cada um, seus números deidentificação, horários, cargos etc.
Para que serve uma struct em C?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Mas como você faria saber as informações de um funcionário especificamente?
Poderíamos pegar cada posição para uma pessoa. Por exemplo, o funcionário BruceLee seria o de número 50, ou seja, para pegar o nome dele, vá para a posição 49da matriz de strings.
Para saber o salário dele, vá na posição de número 49 do vetor de floats querepresenta os salários. Na posição 49 do vetor de inteiros podemos obter a idadedeles e assim vai...
Isso tudo é possível, mas extremamente trabalhoso, confuso e nada organizado.
É para isso que existem as structs!
O que é uma struct em C?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Struct, ou estrutura, é um bloco que armazena diversas informações.
Poderíamos criar uma estrutura para cada funcionário, e dentro dessa estruturatem variável do tipo int (para idade), do tipo string (para armazenar o nome), têmfloats (que armazenam o salário de cada um), etc. E cada estrutura teria um nome,que seria algo relacionado com o funcionário.
Assim, sempre que quiséssemos um dado de um funcionário, bastaríamos teracesso a estrutura dele, e todas as informações viriam juntas.
O que é uma struct em C?
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Essas estruturas, ou structs, podem ter quantos elementos você queira e dos tiposque você quiser. Você primeiro define a estrutura, seu nome e elementos.
Depois você escolhe quantos elementos daquela estrutura quer ter, e os declara comnomes diferentes.
Após isso, em vez de você manipular as milhares de variáveis dos mais diversostipos que tenha criado, você trabalha só com a estrutura.
Assim não tem que se ‘estressar’ com cada detalhe da estrutura.
Esses detalhes são definidos somente uma vez, na declaração da estrutura.
Declarando a Struct em C
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
struct nada mais é que um conjunto, ou bloco, de variáveis.
Declarando a Struct em C
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Vamos declarar uma struct para representar os dados dos funcionários:
O tipo struct
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
A sintaxe para declarar outras structs do tipo “struct Funcionario” é:
O tipo struct
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Outra maneira de declarar variáveis de um tipo struct que queremos, é criar esseselementos após as chaves na hora de criar a “struct Funcionario”.
O tipo struct: acessando os campos
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Criamos 3 funcionários desse tipo, e todos eles terão os mesmos elementos internos,com os mesmos nomes: idade, nome e salario.
Se tem o mesmo nome, como vamos diferenciar esses elementos, então?
O tipo struct: acessando os campos
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Basta colocar um ponto após o nome escolhido para a struct. Após isso, acessamosnormalmente a variável:
Typedef
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Visando simplificar (ou abreviar) nomes de tipos e para tratarmos tipos complexos,é recomendado o uso de typedef
Estruturas Aninhadas
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Os campos de uma estrutura podem ser outras estruturas
Exemplo: Estrutura de um retângulo.
Estruturas Aninhadas
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Os campos de uma estrutura podem ser outras estruturas
Exemplo: Estrutura de um retângulo.
Concluindo...
11:27 34 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Material: https://sites.google.com/site/leinylsonnassau
11:27Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Aula baseada no material de:
Nesta aula aprendemos...
O que é Estrutura de Dados
Quais são os tipos de dados
O que é TAD
11:27 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Na próxima aula veremos...
Revisão de Ponteiros
Conceitos de Programação Estruturada # Vetores
# Matrizes
# Funções
11:27 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Top Related