Estrutura de Dados

Propaganda
Estrutura de Dados
Prof. Me. Marcos Alves
[email protected]


 Operações:
Simples:

Caracter (char): ‘a’
▪ Aritméticas

Inteiro (int): 20
▪ Inserção

Real (float): 32,86
▪ Remoção

Booleano (bool): true
▪ Ordenação
Compostos:
▪ Máximo

Cadeias: “Estruturas de Dados”

Vetores:

Matrizes:
10
20
▪ Mínimo
30
a
b
c
A
B
C
1
2
3
Estrutura de Dados
▪ Inversão
▪ Transposição, etc.
Prof. Me. Marcos Alves
2

Estruturas construídas para armazenar determinados tipos de dados.

Especificam operadores que permitem a manipulação destes dados.

Exemplos: Listas, Pilhas, Árvores, Números Complexos
5
4
2
4
5
-2
5
2
6
20
Estrutura de Dados
Prof. Me. Marcos Alves
3

Estrutura de Dados
 Ramo da computação que estuda os diversos mecanismos de organização de
dados para atender aos diferentes requisitos de processamento.

Tipos:
 Lineares: elementos acessados sequencialmente.
▪ Vetores, pilhas, filas.
 Não Lineares: elementos com diversos ramos de acesso.
▪ Árvores, grafos.
Estrutura de Dados
Prof. Me. Marcos Alves
4


Conjunto de n > 0 nós L[1], L[2], ..., L[n], sendo que:

Se n > 0 é o primeiro nó,

para 1 < k ≤ n, o nó L[k] é precedido pelo nó L[k-1].
Operações mais frequentes:

Inserção;

Remoção;

Busca.

Cada nó é formado por campos que armazenam características distintas dos elementos da lista.

Cada nó possui um identificador: chave.

Os nós podem estar ou não ordenados, pela chave.

Termos: sucessor, antecessor, primeiro, último, início (antes do primeiro) e final (depois do último).
Estrutura de Dados
Prof. Me. Marcos Alves
5
nó1
nó2
nó3
nó4
Em listas ordenadas:
Busca Binária
chave
nome
Algoritmo busca1(x)
i ← 0;
busca ← -1;
enquanto i < n faça
se L[i].chave = x
então busca ← i;
i ← n;
senão i ← i + 1;
fimSe
fimEnquanto
fimAlgoritmo
Estrutura de Dados
endereço
Algoritmo busca2(x)
L[n].chave ← x;
i ← 0;
enquanto L[i].chave ≠ x faça
i ← i + 1;
fimEnquanto
se i ≠ n então
então busca ← i;
senão busca ← -1;
fimSe
fimAlgoritmo
Prof. Me. Marcos Alves
6
Algoritmo Insere(novo-valor)
Insere elementos no final da lista.
se n < M então
se busca(x) = -1
Em uma lista ordenada, a posição do
então
nó torna-se relevante.
L[n] ← novo-valor;
n ← n + 1;
senão
escreva “elemento já existe”;
fimSe
senão
overflow;
fimSe
fimAlgoritmo
Estrutura de Dados
Prof. Me. Marcos Alves
7
Desloca elementos à esquerda.
Algoritmo Remove(x)
se n ≠ 0 então
Alternativa: copiar último elemento
indice ← busca(x);
para a posição do elemento a ser
se indice ≠ -1 então
removido.
então
valor-recuperado ← L[indice];
para i de indice até n-2 faça
L[i] ← L[i+1];
fimPara
n ← n - 1;
senão
escreva “elemento não encontrado na lista”;
fimSe
senão
underflow;
fimSe
fimAlgoritmo
Estrutura de Dados
Prof. Me. Marcos Alves
8
Dadas duas listas L1 e L2, que possam estar desordenadas e contendo elementos repetidos:
1.
Verifique se L1 está ordenada ou não (a ordem pode ser crescente ou decrescente);
2.
Faça uma cópia da lista L1 em uma outra lista L2;
3.
Faça uma cópia da lista L1 em L2, eliminando elementos repetidos;
4.
Inverta L1 colocando o resultado em L2;
5.
Inverta L1 colocando o resultado na própria L1;
6.
Intercale L1 com a lista L2, gerando uma lista L3. Considere que L1, L2 são ordenadas;
7.
Gere uma lista L2 onde cada registro contém dois campos de informação: elem contém um
elemento de L1, e count contém quantas vezes este elemento apareceu em L1;
8.
Elimine de L1 todas as ocorrências de um elemento dado, L1 ordenada;
9.
Assumindo que os elementos de lista L1 são inteiros positivos, forneça os elementos que
aparecem o maior e o menor número de vezes (forneça os elementos e o número de vezes
correspondente);
Estrutura de Dados
Prof. Me. Marcos Alves
9
Download