A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

ESTRUTURA DE DADOS Professor Victor Sotero Estrutura de Dados 1.

Apresentações semelhantes


Apresentação em tema: "ESTRUTURA DE DADOS Professor Victor Sotero Estrutura de Dados 1."— Transcrição da apresentação:

1 ESTRUTURA DE DADOS Professor Victor Sotero Estrutura de Dados 1

2 MODELO DE COMPUTADOR Estrutura de Dados 2

3 TIPOS DE DADOS BÁSICOS 1- Inteiro 2-Real 3- Lógico 4-Caracter Esses são os mais utilizados até agora, mas também existe outros tipos de dados, como os vetores, matrizes e registros que serão vistos mais na frente. Estrutura de Dados 3

4 INÍCIO Algoritmo: – Sequência de ações executáveis para a solução de um determinado tipo de problema Exemplo: Receita de Bolo – Em geral, algoritmos trabalham sobre Estruturas de Dados Conjunto de dados que representam uma situação real Abstração da realidade – Estruturas de Dados e Algoritmos estão intimamente ligados Estrutura de Dados 4

5 REPRESENTAÇÃO DOS DADOS Dados podem estar representados (estruturados) de diferentes maneiras. Normalmente, a escolha da representação é determinada pelas operações que serão utilizadas sobre eles. Exemplo: números inteiros Representação por palitinhos: II + IIII = IIIIII Boa para pequenos números (operação simples) Representação decimal: = 1599 Boa para números maiores (operação complexa) Estrutura de Dados 5

6 O QUE É UMA ESTRUTURA DE DADOS? Estrutura de Dados 6

7 ESTRUTURA DE DADOS Geralmente, os algoritmos são elaborados para manipulação de dados e quando estes dados estão organizados de forma coerente, representam uma estrutura de dados. Os tipos Primitivos (inteiro, real, caracter e lógico) não são suficientes para representar todos os tipos de dados. Geralmente são utilizados os tipos primitivos para construir outras estruturas de dados mais complexas. Estrutura de Dados 7

8 ESTRUTURA DE DADOS A organização dos dados é chamada de estrutura composta de dados que se divide em duas formas fundamentais: homogêneas (vetores e matrizes) e heterogêneas (registros). Estrutura de Dados 8

9 TIPOS DE ESTRUTURAS DE DADOS As estruturas de dados são chamadas tipos de dados compostos que dividem-se em homogêneos (vetores e matrizes) e heterogêneos (registros). As estruturas homogêneas são conjuntos de dados formados pelo mesmo tipo de dado primitivo. As estruturas heterogêneas são conjuntos de dados formados por tipos de dados primitivos diferentes (campos do registro) em uma mesma estrutura. Estrutura de Dados 9

10 TIPOS DE DADOS BÁSICOS Tipos construídos – Vetor(array): agrega número fixo de dados de um mesmo tipo. vet [ limite_inf.. limite_sup ] de tipobásic Estrutura de Dados 10

11 VETORES (VCU) Variáveis compostas unidimensionais são variáveis compostas por um conjunto de dados referenciados por um mesmo nome e que necessitam de somente um índice para que seus elementos sejam endereçados. Sintaxe da declaração: tipo IDENTIFICADOR = vetor [LI..LF] de ; IDENTIFICADOR : lista de variáveis; Estrutura de Dados 11 Onde: LI : representa o limite inicial do vetor; LF : representa o limite final do vetor; : representa qualquer um dos tipos básicos ou tipo anteriormente definido; lista de variáveis : lista de variáveis (separadas por vírgula) que terão o mesmo tipo denotado por IDENTIFICADOR.

12 MANIPULAÇÃO DE VETORES Ao imaginar o elevador de um prédio, sabemos que este é capaz de acessar qualquer um de seus andares. Entretanto, não basta saber que andar desejamos atingir se não soubermos o nome do edifício, pois qualquer um possui andares. O que precisamos de antemão é saber o nome do edifício e só então nos preocuparmos para qual daqueles andares queremos ir. O mesmo acontece com o vetor. Estrutura de Dados 12

13 MANIPULAÇÃO DE VETORES O nome do vetor é determinado por meio do identificador que foi utilizado na definição de variáveis, e a posição, por meio da constante, expressão aritmética ou variável que estiver dentro dos colchetes, também denominada índice. Após isolar um único elemento do vetor, poderemos manipulá-lo através de qualquer operação de entrada, saída ou atribuição. Estrutura de Dados 13 Exemplo: leia V[5]; V[5] V[5] + 1; escreva V[5];

14 CAMPO É um conjunto de caracteres ou um campo isolado, por exemplo o Nome_Completo, que possui características próprias para armanezar dados sobre o nome de um funcionário. Essas características englobam o tipo de dados que devem possuir, o tamanho e outra informações importantes. Estrutura de Dados 14

15 REGISTRO Conjunto de campos com características sobre uma pessoa, local, receita e outros. Por exemplo: um registro de um funcionário vai conter informações como: nome, data de nascimento, endereço, salário, data de admissão, etc... Nós podemos dizer que o registro é o único tipo de dado que pode agregar diversos tipos de dados dentro dele. Estrutura de Dados 15

16 ARQUIVOS Nada mais é que um conjunto de registros (linhas) que identificam a informação através de uma chave ou índice agilizando a manipulação das informações. Estrutura de Dados 16

17 BANCO DE DADOS Conjunto de arquivos ou tabelas com informações que podem ser compartilhadas com vários usuários e assim são relacionadas. Estrutura de Dados 17

18 VARIÁVEIS COMPOSTAS HOMOGÊNIAS Já sabemos que um conjunto homogêneo de dados é composto por variáveis do mesmo tipo primitivo, porém, se tivéssemos um conjunto em que os elementos não são do mesmo tipo, teríamos então um conjunto heterogêneo de dados. Exemplificando, poderíamos ter um conjunto de animais quadrúpedes, formado por cães (matilha), camelos (cáfila), búfalos (manada), etc. Estrutura de Dados 18

19 REGISTROS Uma das principais estruturas de dados é o registro. Para exemplificar, imagine uma passagem de ônibus, que é formada por um conjunto de dados logicamente relacionados, porém de tipos diferentes, tais como número da passagem (inteiro), origem e destino (caractere), data (caractere), horário (caractere), poltrona (inteiro), distância (real), que são subdivisões do registro (elementos do conjunto), também chamadas de campos. Logo, um registro é composto por campos que são partes que especificam cada um dos dados. Estrutura de Dados 19

20 REGISTROS (SINTAXE) tipo IDENTIFICADOR = registro tipo1 : campo1; tipo2 : campo2;.. tipon : campon; fim registro; IDENTIFICADOR : lista de variáveis; Estrutura de Dados 20 Onde: IDENTIFICADOR : representa o nome associado ao tipo registro construído; tipo1, tipo2, tipon : representam qualquer um dos tipos básicos ou tipo anteriormente definido; campo1, campo2, campon : representam nomes associados a cada campo do registro; lista de variáveis : lista de variáveis (separadas por vírgula) que terão o mesmo tipo denotado por IDENTIFICADOR.

21 REGISTROS (cont.) Estrutura de Dados 21

22 CRIANDO REGISTROS Para declarar um registro em algoritmos deve ser feito da mesma forma que declaramos uma variável, ou seja, no início do algoritmo. Ex: Estrutura de Dados 22 File: REGISTRO Nome_Completo: inteiro; Endereco: String [50]; Sexo: Char; Salario :real; Fim_Registro

23 REGISTROS(exemplo) tipo REGPASSAGEM = registro inteiro : NUMERO, POLTRONA; caractere : ORIGEM, DESTINO, DATA, HORÁRIO; real: DISTANCIA; fim registro; REGPASSAGEM : PASSAGEM; Estrutura de Dados 23 O exemplo corresponde à definição de um modelo REGPASSAGEM de um registro e à criação de uma área de memória chamada PASSAGEM, capaz de conter sete subdivisões.

24 MANIPULAÇÃO DE REGISTROS Em determinados momentos podemos precisar de todas as informações contidas no registro (PASSAGEM) ou de apenas algum campo do registro (como freqüentemente, o número da poltrona). Quando acessamos o registro genericamente, estamos referenciando obrigatoriamente todos os campos por ele envolvidos. Exemplo: leia (PASSAGEM); escreva (PASSAGEM) Estrutura de Dados 24

25 MANIPULANDO REGISTROS Para utilizar um campo específico do registro, devemos diferenciar esse campo. Para tal utilizamos o caractere. (ponto) para estabelecer a separação entre o nome do registro e o nome do campo. Exemplo: leia (PASSAGEM.POLTRONA); escreva (PASSAGEM.NUMERO); Estrutura de Dados 25

26 CRIANDO E LENDO UMA ESTRUTURA DE DADOS 1.Declarar as variáveis para criação do registro Cadastro: Cadastro=registro NomeAluno: String [50]; Nota1: real; Nota2: real; Nota3: real; Nota4: real; Fim_registro 2- Criar uma variável de nome Aluno que terá o formato de Cadastro (registro): Aluno: Cadastro Estrutura de Dados Solicitar a digitação do nome e notas e armazenar nas variáveis: Ler Aluno.NomeAluno; Ler Aluno.Nota1; Ler Aluno.Nota2; Ler Aluno.Nota3; Ler Aluno.Nota4; Fim

27 REGISTRO DE CONJUNTOS Os registros vistos até agora possuíam em seus campos apenas informações de tipos primitivos, entretanto, podemos dispor também de campos que são compostos, ou seja, formados por outros tipos construídos. Por enquanto só trataremos de problemas com vetores. Estrutura de Dados 27

28 REGISTRO DE CONJUNTOS Digamos que possuímos um registro de estoque de um produto, contendo como um de seus campos um valor numérico que indique baixas por dia do produto, por dia de semana. Temos então, um vetor de seis posições, na qual cada posição corresponde a um dia útil da semana. Estrutura de Dados 28 Para declarar o tipo registro anterior, utilizamos um tipo construído vetor; então, precisamos primeiramente declarar tal tipo, e depois o tipo registro; isto é, precisamos declarar todos os conjuntos que serão incluídos no registro antes da sua declaração.

29 REGISTRO DE CONJUNTOS (exemplo) Sintaxe da declaração: Exemplos: a) tipo VDIAS = vetor [1..6] de inteiro; tipo REGPROD = registro caractere : NOME; inteiro : CODIGO; real : PRECO; VDIAS : BAIXA; fim registro; REGPROD : PRODUTO; Estrutura de Dados 29

30 REGISTRO DE CONJUNTOS Nas estruturas compostas homogêneas (vetores e matrizes) utilizamos tipos de dados primitivos como sendo os elementos dessas estruturas. Agora utilizaremos como componente dessa estrutura não apenas um tipo primitivo, mas sim os tipos construídos, neste caso os registros. Supondo que quiséssemos manter um registro de informações relativas às passagens rodoviárias de todos os lugares de um ônibus, utilizaríamos um registro referente a cada poltrona (PASSAGEM), e para agrupar todos eles utilizaríamos um conjunto desses registros. Estrutura de Dados 30

31 REGISTRO DE CONJUNTOS (cont.) Como possuímos 44 lugares num ônibus, numerados seqüencialmente de 1 até 44, podemos, para uni-los, criar um vetor no qual cada posição é um elemento de tipo construído registro (PASSAGEM). Estrutura de Dados 31

32 SINTAXE DE DECLARAÇÃO Como possuímos um vetor composto por registros, não podemos declarar esse vetor sem antes ter declarado seus elementos; devemos então declarar primeiro o tipo construído registro e depois o vetor. Estrutura de Dados 32 a) tipo REGPASSAGEM = registro inteiro : NUMERO, POLTRONA; caractere : ORIGEM, DESTINO, DATA, HORÁRIO; real: DISTANCIA; fim registro; tipo VETPASSAGEM = vetor [1..44] de REGPASSAGEM; VETPASSAGEM : ONIBUS;

33 TIPOS DE DADOS X ESTRUTURA DE DADOS Embora estes termos sejam parecidos, eles têm significados diferentes. Em linguagens de programação, o tipo de dados de uma variável define o conjunto de valores que a variável pode assumir. Estrutura de Dados 33

34 TIPOS DE DADOS Uma declaração de variável em uma linguagem como C ou Pascal especifica: 1. O conjunto de valores que pode assumir. 2. O conjunto de operações que podemos efetuar. 3. A quantidade de bytes que deve ser reservada para ela. 4. Como o dado representado por esses bytes deve ser interpretado (por exemplo, uma cadeia de bits pode ser interpretada como um inteiro ou real...). Estrutura de Dados 34 Resumindo: tipos de dados podem ser vistos como métodos para interpretar o conteúdo da memória do computador.

35 TIPOS DE DADOS Podemos ver também o conceito de Tipo de Dados de uma outra perspectiva: não em termos do que um computador pode fazer (interpretar os bits...) mas em termos do que os usuários desejam fazer (somar dois inteiros...). Este conceito de Tipo de Dado divorciado do hardware é chamado Tipo Abstrato de Dado - TAD. Estrutura de Dados é um método particular de se implementar uma TAD. Estrutura de Dados 35

36 TIPO ABSTRATO DE DADOS - TAD A implementação de um TAD escolhe uma ED para representá-lo. Cada ED é construída dos tipos primitivos (inteiro,real, char,...) ou dos tipos compostos (array, registro,...) de uma linguagem de programação. Estrutura de Dados 36

37 EXEMPLOS DE ED LINEARESNÃO LINEARES Listas OrdenadasÁrvores PilhasGrafos Filas Deques Estrutura de Dados 37

38 PILHAS, FILAS E DEQUES Arrays, assim como listas*, são freqüentemente usados para implementar coleções seqüenciais de dados onde as alterações (inserção/remoção) são efetuadas apenas no início ou no final da seqüência: Pilha: inserção e remoção na mesma extremidade Fila: inserção numa extremidade e remoção na outra Deque (double-ended queue): inserção e remoção em ambas extremidades * OBS.: Lembre que estamos empregando o termo array para denotar coleções de dados de mesmo tamanho armazenados contiguamente em memória. Falaremos de listas mais tarde. Estrutura de Dados 38

39 LISTAS LINEARES Estrutura de dados organizada de forma linear, onde a mesma pode ter n nós (n>=0). Quando n=0 dizemos que é uma lista vazia. Estrutura de Dados 39 Podemos: consultar, inserir, deletar sobre os nós de uma lista.


Carregar ppt "ESTRUTURA DE DADOS Professor Victor Sotero Estrutura de Dados 1."

Apresentações semelhantes


Anúncios Google