Estruturas de Dados
Fundamentais
Vetores
Listas Encadeadas
Vetores
Vetores
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
Vetores
int
5
length
int
0
int
0
int
0
int
0
int
0
Vetores
Vantagens:
Simplicidade
Acesso direto
Desvantagens:
Tamanho fixo
Vetores Multidimencionais
Em Java:
int[ ][ ] x = new int[3][5];
x[i] seleciona o i-simo vetor unidimencional
Enquanto, x[i][j] seleciona o j-simo elemento deste vetor
Podemos ter vetores
Matrizes
Vetores bidimencionais
Conjunto de dados do mesmo tipo (estrutura homognea)
Cada elemento pode ser acessado pela sua posio (ndices)
Alocao esttica e sequencial
Matrizes
Vantagens:
Simplicidade
Acesso direto
Desvantagens:
Tamanho fixo
Listas Encadeadas
Listas Encadeadas
Complexidade: O(n)
Lista encadeada
Complexidade: O(1)
Listas Encadeadas
Listas Encadeadas
Exemplos de utilizao:
Listas Encadeadas
Vantagem
Tamanho varivel
Desvantagem
Acesso sequencial
Listas Encadeadas
Remover um item
Localizar um item
Copiar a lista
Etc.
Listas Encadeadas
Elemento
dado
proximo
Elemento
dado
Integer
3
Integer
1
proximo
Elemento
dado
Integer
20
proximo
Listas Encadeadas
Listas Encadeadas
Listas Encadeadas
Soma / 10000
Listas Encadeadas
Considerando que cada lista tem uma funo getDado(i) que retorna o
dado da posio i ou 0 (zero) caso o tamanho da lista menor do que i;
e a funo adicionaFim(d) para adicionar um dado d no final da lista
sobe1 = 0
max = tamanho (nmero de dados) da maior lista entre l1 e l2
for(i=1; i <= max, i++){
e1 = l1.getDado(i);
e2 = l2.getDado(i);
soma = e1+e2+sobe1;
resultado = soma % 10000;
sobe1 = soma / 10000;
l.adicionaFim(resultado);
}
if(sobe1 > 0){
l.adicionaFim(sobe1);
}
retorna l;
Matrizes Esparas