Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos...

25
Disciplina: Estrutura de dados Assunto Introdução Professor Ulisses Vasconcelos Faculdade IEducare

Transcript of Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos...

Page 1: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Disciplina: Estrutura de dados

Assunto

Introdução

Professor Ulisses Vasconcelos

Faculdade IEducare

Page 2: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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

Page 3: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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)

Page 4: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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

Page 5: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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.

Page 6: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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

Page 7: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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.

Page 8: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Estrutura de dados – Introdução

Professor Ulisses Vasconcelos

Tipos estruturadosde dados em pascal

Tipos estruturados em Pascal

•Vetores / Matrizes

•Conjunto

•Registros

Page 9: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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

Page 10: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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

Page 11: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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]

Page 12: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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‟;

Page 13: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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)

Page 14: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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

Page 15: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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;

Page 16: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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;

Page 17: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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

Page 18: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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?

Page 19: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Estrutura de dados – Recursividade

Professor Ulisses Vasconcelos

Recursividade

Fatorial não-recursivo

Page 20: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Estrutura de dados – Recursividade

Professor Ulisses Vasconcelos

Recursividade

Fatorial recursivo

Page 21: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Estrutura de dados – Recursividade

Professor Ulisses Vasconcelos

Recursividade

Sequência de Fibonacci

Dada pela seguinte regra:

Page 22: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

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?

Page 23: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Estrutura de dados – Recursividade

Professor Ulisses Vasconcelos

Recursividade

FIBONACCI NÃO RECURSIVO

Page 24: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Estrutura de dados – Recursividade

Professor Ulisses Vasconcelos

Recursividade

FIBONACCI RECURSIVO

Page 25: Disciplina: Estrutura de dados · Estrutura de dados –Introdução Professor Ulisses Vasconcelos Conteúdo da disciplina CONTEÚDO: •Introdução a Estrutura de Dados •Recursividade

Estrutura de dados – Recursividade

Professor Ulisses Vasconcelos

Recursividade

TORRE DE HANÓI