160 likes | 291 Views
Estruturas de Dados. 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. Simples. Inteiros Guardam valores sem casa decimais
E N D
Estruturas de Dados 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 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 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 Luís Ceia
Complexos • Comprimento Fixo • Vectores/Matrizes • Comprimento Variável • Listas • Lineares • Pilhas, Filas, Ficheiros • Não Lineares • Árvores 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 Luís Ceia
Comprimento Variável • Listas • Lineares • Pilhas, Filas, Ficheiros • Não Lineares • Árvores 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; 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. Luís Ceia
Dados Dados Dados Próx. Próx. Próx. Listas Lineares Cabeça 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 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; 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. 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. Luís Ceia
F R C P V B A Á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. Luís Ceia