Estruturasfundamentais
1063 palavras
5 páginas
Estruturas de DadosEstruturas de Dados Fundamentais
Prof. Eduardo Alchieri
Estruturas de Dados
Fundamentais
Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando um vetor (array) ou um tipo de estrutura encadeada (lista encadeada)
Por isso, o vertor e a lista encadeada são chamados de estruturas de dados fundamentais
Estudaremos as seguintes estruturas fundamentais:
Vetores
Vetores multidimencionais (matrizes)
Listas Encadeadas
Vetores
Provavelmente o vetor é a estrutura mais comum (simples) usada para agregar dados
Em Java, um vetor é um objeto que contém uma lista de objetos (referências para objetos) ou tipos primitivos, todos do mesmo tipo
Estrutura homogênea: conjunto de dados do mesmo tipo
Cada elemento pode ser acessado pela sua posição (índice)
Alocação de memória é estática e sequencial
Uma vez alocado, o tamanho de um vetor está fixado
Exemplo: int[] a = new int[5];
0
0
0
0
0
Vetores
Exemplo: int[] a = new int[5]; a[0] = 1
1
0
0
0
a[1] = 2
0
1
2
0
0
0
a[2] = 3
1
2
3
0
0
a[3] = 4
1
2
3
4
0
a[4] = 5
1
2
3
4
5
Vetores
Em Java (e na maioria das linguagens de programação) cada vetor tem um campo para indicar seu tamanho (length)
Em nosso exemplo: a.length tem valor 5
O Java testa em tempo de execução a validade de cada índice Índices válidos: 0 até length-1
Quando um índice inválido é usado, ocorre a exceção
IndexOutOfBoundsException
Representação na memória
int
5
length
int
0
int
0
int
0
int
0
int
0
Vetores
Vantagens:
Simplicidade
Acesso direto
Desvantagens:
Tamanho fixo
Vetores Multidimencionais
Um vetor multidimencional de dimensão n é uma coleção de ítens que são acessados através de n expressões de subscritos
Exemplo: (i,j)-ésimo elemento de um vetor x bidimencional é acessado pela expressão x[i,j]
Em Java: int[ ][ ] x = new int[3][5];
x[i] seleciona o i-ésimo vetor