Post on 27-Dec-2018
Disciplina: Estrutura de dados
Assunto
Introdução
Professor Ulisses Vasconcelos
Faculdade IEducare
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Conteúdo da disciplina
CONTEÚDO:
•Introdução a Estrutura de Dados
•Recursividade
•Fila
•Pilha
•Lista
•Árvore
•Árvore Binária
•Balanceamento de árvore
•grafo
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Aula de hoje
CONTEÚDO:
•Introdução a Estrutura de Dados
•Elementos de dados
•Tipos primitivos de dados
•Tipos estruturados de dados
•Revisão de Pascal (procedure e function)
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Introdução a Estrutura de dados
•Estrutura de Dados
Aplicada quando temos necessidade de trabalhar com
tipos de dados de uma forma mais eficiente e
organizada.
Trabalha com métodos de organização lógica dos
dados, dando-lhes atributos mais funcionais do que se
estivessem sem qualquer tipo de estruturação.
Em geral usa-se algoritmos para organizar os dados e
estes algoritmos determinam uma estruturação dos
dados eu representam uma abstração do mundo real
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Elementos de dados
•Elementos de Dados
São caracterizados por grupos de valores
baseados nos tipos de dados primitivos ou
estruturados.
Estes valores podem ser representados por uma
constante, assumidos por uma variável,
expressão ou gerados por uma função.
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Tipos primitivos de dados
•Tipos primitivos de dados:
São grupos de valores indivisíveis
•Exemplo
•Inteiros: byte, integer;
•Fracionários: real, double;
•Alfanuméricos: char
Operação lógica: boolean
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Tipos estruturadosde dados
•Tipos estruturados
São um conjunto que podem ser
decompostos em entidades mais simples que
podem por sua vez ser: tipos primitivos ou
estruturados.
O exemplo mais comum de conjuntos de tipos
estruturados são os conjuntos de strings, onde
cada string pode ser decomposta em vários
caracteres.
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Tipos estruturadosde dados em pascal
Tipos estruturados em Pascal
•Vetores / Matrizes
•Conjunto
•Registros
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Tipos estruturadosde dados em pascal
•Vetores / Matrizes Conjunto de elementos do mesmo tipo, possui as
características a seguir:
- Finito: tamanho conhecido;
- Ordenado: Elementos organizados;
- Homogêneo: Componentes do mesmo tipo;
- Pode apresentar várias dimensões.
VAR vetor = ARRAY [1..10] OF CHAR
VAR matriz = ARRAY [1..10,1..20] OF INTEGER
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Tipos estruturadosde dados em pascal
•Vetores / Matrizes Conjunto de elementos do mesmo tipo, possui as
características a seguir:
- Finito: tamanho conhecido;
- Ordenado: Elementos organizados;
- Homogêneo: Componentes do mesmo tipo;
- Pode apresentar várias dimensões.
VAR vetor = ARRAY [1..10] OF CHAR
VAR matriz = ARRAY [1..10,1..20] OF INTEGER
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Tipos estruturadosde dados em pascal
•Conjuntos Conjunto de valores suportados,
definidos previamente.
TYPE marcaVeiculos = SET OF [Chevrolet,
Ford, Fiat]
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Tipos estruturadosde dados em pascal
•Registros Agrupamento de dois ou mais tipos de dados
arbtirários, podendo suportar tipos de dados diferentes
em um mesmo registro.
typefuncionario = record
nome : string [50];
endereco : string [50];
salario : real;
end;
Como utilizar? Funcionario.nome := „Antônio‟;
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Atividades de estrutura de dados
Atividades
Dentre as várias atividades da estrutura de dados, podemos
destacar:
•Métodos de recursividade
•Pilhas
•Filas
•Listas
•Árvores
•Métodos de pesquisa (pesquisa linear, pesquisa binária)
•Métodos de ordenação ou classificação (Quick Sort, Heap Sort,
etc)
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Revisão pascal
•ModularizaçãoDivide um programa em módulos ou
subprogramas, valendo-se da técnica “dividir para
conquistar”.
No pascal, são utilizados procedimentos (Procedures)e
funções (functions) para fazer a modularização.
Um subprograma pode ser chamado a partir do
programa principal, de outro subprograma ou dele
próprio.
Uma das grandes vantagens é a reutilização de código
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Revisão pascal
•ProcedureÉ uma estrutura de programa autônoma que está incluída
num programa em Pascal.
Ao executar a chamada a um procedimento em pascal, o
controle da execução do programa é direcionado para o código
do procedimento e após executar o procedimento retorna a linha
posterior a sua chamada
Sintaxe:
procedure Nome( parametros )
var
<variáveis>
begin
<instruções>
end;
Estrutura de dados – Introdução
Professor Ulisses Vasconcelos
Revisão pascal
•FunctionTem as mesmas características das procedures, com a
diferença que a function sempre retorna um valor ao código que
o chama
Sintaxe:
function <nome> [(parâmetros)] : <tipo de retorno>;
var
<variaveis> ;
begin
<instrucoes>;
end;
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
-Contém em sua descrição uma ou mais
chamadas a si mesmo.
-Contém uma condição de parada.
-Naturalmente, um procedimento recursivo
ou não deve ter uma ou mais chamadas
em um local exterior a ele.
-Exemplo clássico: FATORIAL
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
Fatorial
O Fatorial de um número é:
n * (n-1) * (n-2) * (n-3) * ... (n – (n-1))
ou seja: n! = n(n-1)!
Por exemplo:
Fatorial de 5! = 5 * 4 * 3 * 2 * 1
Como desenvolver em Pascal um projeto
para calcular o fatorial de um número de
modo estruturado?
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
Fatorial não-recursivo
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
Fatorial recursivo
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
Sequência de Fibonacci
Dada pela seguinte regra:
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
Sequência de Fibonacci
F(0) = 0
F(1) = 1
F(2) = F(2-1) + F(2-2) F(1) + F(0) 1 + 0 1
F(3) = F(3-1) + F(3-2) F(2) + F(1) 1 + 1 2
...
0 1 1 2
Como definir o algoritmo não-recursivo e o
recursivo?
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
FIBONACCI NÃO RECURSIVO
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
FIBONACCI RECURSIVO
Estrutura de dados – Recursividade
Professor Ulisses Vasconcelos
Recursividade
TORRE DE HANÓI