Você está na página 1de 15

Estrutura de Dados

Prof. Mauricio Rêgo Mota da Rocha


Agenda
 Introdução
 Tipos de Dados
 Tipos Primitivos.
 Estrutura de Dados
 Vetores (Arrays).
 Registros.
 Listas.
 Pilhas.
 Filas.
 Árvores.

Estrutura de Dados - Prof. Mauricio Rocha


Introdução
 Computadores são máquinas que manipulam dados e
informações.
 Algoritmo: processo sistemático para a resolução de um
problema.
 Computa uma saída a partir de uma entrada. Dessa forma,
durante o processo, o algoritmo manipula dados.
 Para possibilitar essa manipulação as linguagens de
programação devem fornecer uma representação para
esses dados.
 Essa representação organizada é uma estrutura de dados, com
seus respectivos métodos de manipulação dos dados.
 A escolha da melhor estrutura depende das características
do algoritmo em questão.

Estrutura de Dados - Prof. Mauricio Rocha


Tipo de Dados
 A especificação de um tipo de dados deve definir:
 Os objetos constituintes do tipo e as operações aplicáveis
ao tipo de dados;
 Além de, possivelmente, estabelecer uma forma de
representação para esses objetos.
 Podem variar conforme o sistema operacional e a
linguagem de programação.
 As linguagens de programação oferecem alguns
tipos básicos pré-definidos, chamados de
primitivos, bem como certos mecanismos para criar
outros tipos, chamados tipos construídos.

Estrutura de Dados - Prof. Mauricio Rocha


Tipo de Dados
 Tipos Primitivos
 Inteiro
 Os valores possíveis para um objeto do tipo inteiro são os
número inteiros (negativos, zero ou positivos).
 Exemplos: -3, 0, 7, -326, 7084.
 As operações sobre tipos inteiros são:
 Soma (+);
 Subtração (-);
 Multiplicação (*);
 Divisão Inteira (/);
 Resto da Divisão (%).
 Pode-se comparar dois inteiros para testar se são iguais (==),
diferentes (!=), menor ou igual (<=), maior ou igual (>=),
menor (<) e maior (>).

Estrutura de Dados - Prof. Mauricio Rocha


Tipo de Dados
 Tipos Primitivos
 Real
 Os objetos do tipo real são os números racionais.
Normalmente representados por uma parte inteira e outra
parte fracionária.
 Exemplos: -3,5, 0,0001, 1.0, 2,37.
 As operações do tipo real são:
 Soma (+);
 Subtração (-);
 Multiplicação (*);
 Divisão (/).
 Pode-se comparar dois inteiros para testar se são iguais (==),
diferentes (!=), menor ou igual (<=), maior ou igual (>=),
menor (<) e maior (>).

Estrutura de Dados - Prof. Mauricio Rocha


Tipo de Dados
 Tipos Primitivos
 Lógico
 Este tipo consiste de exatamente dois tipos: verdadeiro e
falso, sendo as constantes correspondentes V (1) e F (0).
 As operações sobre valores lógicos são:
 E - && (recebe um par de argumentos lógicos e o resultado é um
novo tipo lógico. O resultado é sempre F (0) a não se que ambos
os argumentos tenham valor V (1));
 OU - || (recebe um par de argumentos lógicos e o resultado é um
novo tipo lógico. O resultado é sempre V (1) a não se que ambos
os argumentos tenham valor F (0));
 NÃO - ! (recebe um valor lógico e fornece o valor lógico
“contrário”).

Estrutura de Dados - Prof. Mauricio Rocha


Tipo de Dados
 Tipos Primitivos
 Caractere
 Os objetos deste tipo são os chamados “caracteres
alfanuméricos”.
 Os dígitos decimais (0-9);
 As letras (A-Z);
 Alguns sinais especiais (espaço em branco, sinais de pontuação,
etc).
 Exemplos:’0’, ‘o’, ‘A’, ‘a’, ‘ ‘, ‘*’ e outros.
 Permite apenas comparações através dos símbolos == e !=.
 Cadeias de Caracteres
 São tipos de dados formados por um caractere ou por
uma cadeia de caracteres (letras minúsculas, letras
maiúsculas, números e caracteres especiais).
Estrutura de Dados - Prof. Mauricio Rocha
Estruturas de Dados
 Busca descrever modelos de estruturas de dados e
procedimentos.
 Exemplos: Vetor, Matriz, Estruturas, Listas, Pilhas, Filas e
Árvores, etc.
 Os tipos de dados e operações determinam as
estruturas de dados.
 Exemplo: Em uma pilha ou fila você possui operações
push e pop para colocar e retirar elementos dela.
 A forma como os dados são inseridos ou removidos e
que difere uma estrutura da outra.

Estrutura de Dados - Prof. Mauricio Rocha


Estruturas de Dados
 Vetores e Matrizes
 São estruturas de dados lineares e estáticas, isto é, são
compostas por um número fixo (finito) de elementos de
um determinado tipo de dados.
 O tempo de acesso aos elementos de um vetor ou matriz
é muito rápido, sendo considerado constante: os
elementos são acessados pelo(s) seu(s) índice(s).
 Porém, a remoção de elementos pode ser custosa se não
for desejável que haja espaços "vazios" no meio do vetor,
pois nesse caso é necessário "arrastar" de uma posição
todos os elementos depois do elemento removido.
 Essa é uma estrutura muito recomendada para casos em
que os dados armazenados não mudarão, ou pouco
mudarão, através do tempo.
Estrutura de Dados - Prof. Mauricio Rocha
Estruturas de Dados
 Estruturas
 Às vezes tem-se a necessidade de trabalhar com dados
heterogêneos, cujos componentes não são do mesmo
tipo.
 Para construções desse tipo, temos o mecanismo de
estruturas.
 Exemplo:
 struct record {
int c1;
float c2;
};

Estrutura de Dados - Prof. Mauricio Rocha


Estruturas de Dados
 Listas
 Uma Lista é uma estrutura de dados linear, uma lista ligada é
linear e dinâmica, composta por células que apontam para o
próximo elemento da lista.
 Para "ter" uma lista ligada, basta guardar seu primeiro
elemento, e seu último elemento apontando para uma célula
nula.
 Pilhas
 As pilhas são estruturas LIFO (last in, first out), ou seja, os
dados que foram inseridos por último na pilha serão os
primeiros a serem retirados.
 Existem duas funções clássicas para pilhas que são a PUSH e
a POP, que inserem e retiram dados da pilha, respectivamente.

Estrutura de Dados - Prof. Mauricio Rocha


Estruturas de Dados
 Filas
 As filas são estruturas FIFO (first in, first out) ou LILO (last in, last
out), em que os elementos que foram inseridos no início são os
primeiros a sair.
 Árvores
 Uma árvore é uma estrutura de dados em que cada elemento tem
zero ou mais elementos associados, podendo definir-se uma
árvore recursivamente como:
 (1) uma estrutura vazia (uma árvore vazia);
 (2) um nó (designado por raiz), que contém a informação a armazenar e
um conjunto finito de árvores (as sub-árvores).
 Cada árvore tem apenas uma raiz. Além disso, os elementos
associados a cada nó são comumente chamados de filhos desses
nós. Os nós sem filhos de uma árvore são chamados de folhas.

Estrutura de Dados - Prof. Mauricio Rocha


Elementos Fundamentais
 As Estruturas de dados fazem uso de:
 Tipos abstratos de dados
 São usados para representar os elementos das estruturas de
dados que podem ser compostos por atributos de tipos
primitivos ou por atributos de outros tipos abstratos de dados.
 Alocação dinâmica de memória
 Usada para permitir a criação de novos elementos da estrutura
de dados em tempo de execução.
 Ponteiros
 São usados para referenciar os elementos da estrutura de
dados e permitir o encadeamento dos elementos, a ligação
entre os elementos que compõem uma estrutura de dados.

Estrutura de Dados - Prof. Mauricio Rocha


Exercício
 Escrever um programa que lê do teclado uma
sequência de números inteiros positivos (testar se o
número lido é positivo) e calcular um conjunto de
estatísticas acerca da mesma, tais como: o máximo,
o mínimo e média da sequência:
 O programa deve escrever um menu de operações
(Máximo, Mínimo e Média) após a leitura dos
números.
 A leitura da sequência termina quando aparecer o
número zero como indicador de paragem ou quando
tiverem sido lidos 50 números.

Estrutura de Dados - Prof. Mauricio Rocha

Você também pode gostar