Você está na página 1de 59

Estrutura de dados

Arranjos & Listas

Facilitador
Prof.º Me. Walbert Monteiro

Campus Bragança
Curso Técnico em Desenvolvimento de Sistemas
Disciplina Estrutura de dados
walbert.monteiro@ifpa.edu.br
Apresentar conceitos sobre:
Array

ArrayList

2
Apresentar conceitos sobre:
Listas simplesmente encadeadas
Listas duplamente encadeadas

3
ESTRUTURA DE DADOS
=
ORGANIZAÇÃO DE DADOS
+
OPERAÇÕES PERMITIDAS
4
VETORES E MATRIZES
São estruturas de dados simples e
homogêneas pois permitem o
armazenamento de dados de um único
tipo primitivo.

5
VETORES E MATRIZES

Exemplo: vetor, matriz e array


6
VETORES E MATRIZES
Permitem acesso direto a um elemento
através do nome do vetor/matriz seguido
do índice bem como o acesso
sequencial, percorrendo elemento a
elemento do vetor/matriz
7
PONTEIROS
São usados para referenciar o
encadeamento dos elementos, ligação
entre os elementos que compõem uma
estrutura de dados.

8
PONTEIROS
TAIL
PONTEIRO PONTEIRO PONTEIRO

DADOS PONTEIRO DADOS PONTEIRO DADOS PONTEIRO

Representação simbólica da lista simplesmente encadeada


HEAD

9
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.

10
Os tipos primitivos de dados não
servem para tudo.

11
Alguns autores dividem as estrutura de dados segundo as categorias:

ESTRUTURAS DE
ESTRUTURAS DE
DADOS NÃO
DADOS PRIMITIVAS
PRIMITIVAS

12
TIPOS DE ESTRUTURAS DE DADOS

ESTRUTURAS DE ESTRUTURAS DE DADOS NÃO


DADOS PRIMITIVAS PRIMITIVAS

Inteiro Linear Não-Linear

Real Array Graph


(Matriz)
(Grafo)
Lógico Queue
Tree
(Fila)
(Árvore)
Stack
Caracter
(Pilha)
Linked list
Ponteiro (Lista Vinculada) 13
VETORES E MATRIZES

Exemplo: vetor, matriz e array


14
ARRAY

15
ARRAY
É um objeto que contém um número
fixo de valores de um único tipo, após
sua criação.

16
ARRAY - PROBLEMA

Não pode-se alterar o tamanho do


ARRAY em tempo de execução.

17
ARRAY
EXEMPLO
18
Elemento Elemento

Array de
números
inteiros

Fonte: CodeForWin
Índice Índice Índice Índice

O ARRAY sempre começa em 0

19
Elemento Elemento

Array de
números
inteiros

Fonte: CodeForWin
Índice Índice Índice Índice

Acesso, sempre é realizado pelo número do índice:


Exemplo
Item de índice 0, valor = 10
Item de índice 3, valor = 40
Item de índice 0, valor = 100 20
● Um array pode ser construído de tipos primitivos (inteiro, real, booleanos,
caracter, etc.);
● Um array na linguagem java é definido com colchetes [ ];
● O tamanho do array é fixo (não muda em tempo de execução);
● O índice é numérico, do tipo int, variando de 0 até N-1, N é o tamanho do
array.

21
Elemento Elemento

Array de
números
inteiros

Fonte: CodeForWin
Índice Índice Índice Índice

Tamanho do array, 10.


Cálculo dos índices:
Num. índices = N-1
N = 10-1
N=9
22
Logo, índice inicia em 0 e termina em 9, totalizando 10 elementos.
Um array precisa ser declarado como qualquer variável. Ao declarar
um array, defina o tipo de dado seguido por colchetes [ ] e pelo nome
que o identifica.
Exemplos:
int [] idade; (Forma 01)
int idade[]; (Forma 02)

23
Declarando um array:
<tipo_do_array> [] nome_do_array

Nome do Array Elementos do Array


Tipo do Array 24
Resultado

25
Um elemento do array pode ser acessado utilizando-se o número do
índice.

Array de
números
inteiros Índice

nomeDoArray [0] - 10; Fonte: CodeForWin


nomeDoArray [1] - 20;
nomeDoArray [2] - 30;
.
.
.
nomeDoArray [9] - 100; 26
Resultado

Selecionando os elementos pelo índice


- nomeDoArray[numeroIndice]

27
Resultado

Selecionando os elementos pelo índice


- nomeDoArray[numeroIndice]

28
Um elemento do array pode ser acessado utilizando-se o número do
índice.

Array de
números
inteiros Índice

Fonte: CodeForWin

nomeDoArray [0] = 99;

29
Resultado

Selecionando os elementos pelo índice


- nomeDoArray[numeroIndice] = novo valor

30
O tamanho de um array pode ser obtido através do comando lenght.

Resultado

comando - nomeDoAray.lenght

Tamanho do array igual a 10

31
ARRAY LIST

32
VETORES E MATRIZES

Exemplo: vetor, matriz e array


33
ARRAYLIST
É um objeto que contém um número
dinâmico de valores de um único tipo,
permitindo adicionar ou remover
elementos a qualquer tempo.

34
● Pode conter elementos duplicados;
● Mantém a ordem da inserção;
● Permite acesso aleatório.

35
Exemplos Genérico de criação de ArrayList
ArrayList <TipoDeDados> = new ArrayList<TipoDeDados> ();

Pacote ArrayList

Criação do ArrayList
36
Pacote ArrayList

Criação do ArrayList

37
Para adicionar elementos em um ArrayList, deve-se utilizar o comando add.
NomeDoArrayList.add();
Resultado
Pacote ArrayList

Adicionando elementos ArrayList 38


Para Selecionar elementos em um ArrayList, deve-se
utilizar o método get() para retornar o índice do elemento.

NomeDoArrayList.get();

39
Resultado

Método get()
40
Para alterar elementos em um ArrayList, deve-se
utilizar o método set() para alterar o respectivo valor.

NomeDoArrayList.set(NumeroDoIndice,“NovoValor”);

41
Resultado

método set() realiza a modificação


do valor

Transversing 42
Para remover elementos em um ArrayList, deve-se
utilizar o método remove() para excluir o valor
desejado, sempre usando o índice para referenciar o
elemento desejado no arraylist.
NomeDoArrayList.remove(NumeroDoIndice);

43
Resultado

remove o elemento de índice 1

Transversing

44
LISTA
SIMPLESMENTE
ENCADEADA
45
É uma estrutura de dados linear, que representa uma sequência de
objetos, todos do mesmo tipo, na memória RAM do computador, onde cada
elemento possui um espaço para armazenamento da informação e um
espaço para armazenar uma referência da localização na memória onde o
próximo elemento da lista se encontra. Nó

HEAD

Representação simbólica da lista simplesmente encadeada


46
VANTAGENS

● Listas encadeadas são dinâmicas, portanto seu tamanho pode aumentar


ou diminuir conforme o necessário.
● Nós da lista encadeada não estão armazenados contiguamente na
memória, são apenas logicamente contíguos.
● A ordem da lista pode ser mantida simplesmente inserindo cada
elemento no ponto adequado da lista, não precisa mover os outros.
● É uma estrutura de dados baseada em tipo recursivo de dados.

47
PRINCIPAIS FUNÇÕES
● Inserção de elementos na lista;
● Retirada de elementos da lista;
● Impressão de elementos da lista;
● Busca de elementos da lista;
● Verificar se a lista está vazia;

48
Não é preciso movimentar as células para “abrir espaços”
para uma nova célula. Basta mudar os valores de alguns
ponteiros.

Representação simbólica da operação de inserção em


lista simplesmente encadeada

49
Para “remover uma célula”, basta mudar os valores de
alguns ponteiros e eliminar o elemento desejado.

Representação simbólica da operação de remoção em lista


simplesmente encadeada

50
PROBLEMA
A lista simplesmente encadeada permite o
acesso aos elementos de uma lista em apenas
uma direção.

51
Questão
Como percorrer a lista na ordem inversa do final
para o início?

52
LISTA
DUPLAMENTE
ENCADEADA
53
Cada elemento tem dois ponteiros, um ponteiro
aponta para o próximo elemento e outro ponteiro para
o elemento anterior.

Representação simbólica de lista duplamente


Ponteiro encadeada

54
CARACTERÍSTICAS
● Pode ser vazia;
● Poder ter um ou mais nós;
● Sempre um nó terá dois ponteiros;
● É possível caminhar para a direita ou esquerda com igual
facilidade;
● É mais segura que uma lista simplesmente encadeada
devido a existencia de dois ponteiros.

55
PRINCIPAIS FUNÇÕES
● Inserção de elementos na lista;
● Retirada de elementos da lista;
● Impressão de elementos da lista;
● Busca de elementos da lista;
● Verificar se a lista está vazia;

56
Não é preciso movimentar as células para “abrir espaços”
para uma nova célula. Basta mudar os valores de alguns
ponteiros.

Representação simbólica da operação de inserção em


lista duplamente encadeada
57
SITUAÇÕES
● Um reprodutor de músicas;
● Estoque de um mercado;
● Redes sociais;

58
OBRIGADO
Estrutura de dados
Prof.º Me. Walbert Monteiro
Campus Bragança
Curso Técnico em Desenvolvimento de Sistemas
walbert.monteiro@ifpa.edu.br
59