Estruturas de Dados Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Estruturas de Dados • Simples • Inteiros, Reais, Valores Lógicos, Alfanuméricos • Complexos – Comprimento Fixo • Vectores/Matrizes – Comprimento Variável • Listas – Lineares » Pilhas, Filas, Ficheiros – Não Lineares » Árvores Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Simples • Inteiros – Guardam valores sem casa decimais • Integer, Byte, LongInt / Int, Short Int • Decimal, Hexadecimal • Reais – Valores com partes fraccionárias • Real / Double, Float Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Simples • Valores Lógicos – podem assumir os valores lógicos verdadeiro ou Falso, codificados com 1 e 0 • Boolean • Alfanuméricos – Conjuntos de caracteres ou cadeias de caracteres • 1 byte por caractere • Char, String / Char Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Complexos • Comprimento Fixo – Vectores/Matrizes • Comprimento Variável – Listas • Lineares – Pilhas, Filas, Ficheiros • Não Lineares – Árvores Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Comprimento Fixo • Vectores/Matrizes – Uma Matriz é uma estrutura de dados que agrupa informação em linhas e colunas – Uma Matriz pode ser Multidimensional ou Unidimensional (Vector) • Array [Indice] of Variável Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Comprimento Variável • Listas – Lineares • Pilhas, Filas, Ficheiros – Não Lineares • Árvores Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Listas Lineares • Ficheiros – Estrutura de dados que guarda a informação em memória secundária. Type Empregado=Record Numero : Integer; Nome : String; Salario : Real; End; Var TabFunc : Empregado; ArCad : File of Empregado; Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Listas Lineares • Pilhas, Filas (Apontadores, Pointers) – Também chamadas apontadores ou ponteiros, são dados que contém endereços para outros dados. • Este tipo de variáveis não são estáticas (forma e tamanho pré-determinado, em que existem durante todo o tempo de execução do bloco onde foram declaradas). • São as denominadas variáveis dinâmicas. Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Listas Lineares Cabeça Dados Dados Dados Próx. Próx. Próx. Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Apontadores (Pointers) • Notação em PASCAL – Ponteiro para um Inteiro: VAR P_INT:^INTEGER; – P_INT é um endereço – Se X é uma variável normal – P_INT^ é o valor inteiro contido no endereço apontado por P_INT^ – ^X é o endereço da variável X Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Apontadores (Pointers) VAR X,Y:INTEGER; P_INT:^INTEGER; {variável tipo pointer de inteiros} PTR:^REAL; {variável tipo pointer de reais} BEGIN X:=13; {X recebe o valor 13} P_INT^:=X; {P_INT recebe o valor da variável X, apontando para ela} Y:=P_INT^; {Y recebe o conteúdo da posição de memória apontada por P_INT} WRITELN(X, ‘ = ‘,P_INT^, ‘ = ‘,Y); {13 = 13 = 13} PTR^:=Y; {PTR recebe o valor da variável Y, apontando para ela} PTR^:=28; {Y é alterada, pois PTR aponta para a posição de memória de Y} WRITELN(X, ‘ = ‘,PTR^, ‘ = ‘,Y); {13 = 28 = 13} END; Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Não Lineares • Árvores – Uma árvore binária é composta por nós. – Cada nó tem ramificações (uma para valores superiores, outra para valores inferiores). – Cada nó inclui um campo chave e dois apontadores para os nós correspondentes a cada uma das ramificações. Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Árvores • O primeiro elemento é colocado no topo da árvore. • A partir daí cria-se uma ramificação para a esquerda, para os elementos de valor superior, e uma ramificação para a direita para os elementos de valor inferior. Estrutura Organização e Tratamento de Dados - 12º ano Luís Ceia Árvores • Suponhamos que procuramos o valor C 1- C é inferior a F(Topo), seguir pela direita. 2- C é superior a B, seguir pela esquerda. 3- Encontrámos C. a pesquisa está terminada. F B R V P Estrutura Organização e Tratamento de Dados - 12º ano C A Luís Ceia