Cap 6 - Vets Listas e Seqs-4spp

Cap 6 - Vets Listas e Seqs-4spp - O TAD Vetor O TAD Vetor...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
1 Vetores, Listas e Seqüências w Estrutura de Dados 2 O TAD Vetor O TAD Vetor implementa a noção de sequência ao utilizar o conceito de colocação ( rank ) ao invés de índice. Um elemento pode ser acessado, inserido ou removido através da sua posição (número de elementos precedentes). Uma exceção acontece se uma posição r inválida for especificada ( e.g. r for negativa ). Operações principais: ! objeto elemAtRank (inteiro r): retorna o elemento na posição “r” sem removê-lo. ! objeto replaceAtRank (inteiro r, objeto o): substitui o elemento na posição “r” por “o” e retorna o elemento antigo. ! insertAtRank (inteiro r, objeto o): insere um novo elemento “o” para assumir a posição “r”. ! objeto removeAtRank (inteiro r): remove e retorna o elemento na posição “r”. Operações adicionais: size () e isEmpty (). 3 Exemplo Operação Saída Vetor S insertAtRank (0,7) - (7) insertAtRank (0,4) - (4,7) elemAtRank (1) 7 (4,7) insertAtRank (2,2) - (4,7,2) elemAtRank (3) “erro” (4,7,2) removeAtRank (1) 7 (4,2) insertAtRank (1,5) - (4,5,2) insertAtRank (1,3) - (4,3,5,2) insertAtRank (4,9) - (4,3,5,2,9) elemAtRank (2) 5 (4,3,5,2,9) 4 Adaptação de Deque via Vetor Método do Deque Implementação com Método do Vetor size () size () isEmpty () isEmpty () first () elemAtRank (0) last () elemAtRank (size()-1) insertFirst (e) insertAtRank (0,e) insertLast (e) insertAtRank (size(),e) removeFirst () removeAtRank (0) removeLast () removeAtRank (size()-1)
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
w Estrutura de Dados 5 Aplicações de Vetores Aplicações imediatas: ! Coleção ordenada de objetos (base de dados elementar). Aplicações indiretas: ! Estrutura de dados auxiliar para algoritmos. ! Componente de outras estruturas de dados. 6 Vetor Utilize uma sequência de N objetos A. Uma variável n mantém o controle do tamanho do Vetor (número de elementos armazenados). A operação elemAtRank ( r ) retorna A [ r ] em tempo O (1) . A 0 1 2 n r 7 Inserção Na operação insertAtRank ( r , o ), nós necessitamos criar espaço para o novo elemento deslocando para frente os n ± r elementos seguintes, i.e., A [ r ], …, A [ n ± 1]. No pior caso ( r = 0 ), esse procedimento leva tempo O ( n ). A 0 1 2 n r A 0 1 2 n r A 0 1 2 n o r 8 Remoção Na operação removeAtRank ( r ), precisamos preencher o espaço deixado pelo elemento removido deslocando para trás os n ± r ± 1 elementos A [ r + 1], …, A [ n ± 1]. No pior caso ( r = 0 ), esse procedimento leva tempo O ( n ). A 0 1 2 n r A 0 1 2 n o r A 0 1 2 n r
Background image of page 2
w Estrutura de Dados 9 Desempenho Implementação baseada em sequência: ! O espaço utilizado pela estrutura de dados é O ( n ). ! size , isEmpty , elemAtRank e replaceAtRank executam em tempo O (1). ! insertAtRank e removeAtRank executam em tempo O ( n ) no pior caso e no caso médio. No melhor caso ( r = n e r = n -1 respectivamente) executam em O (1). Utilizando um vetor circular * , insertAtRank (0) e removeAtRank (0) também executam em tempo O (1). Na operação insertAtRank , quando o vetor está cheio, ao invés de executar uma exceção podemos substituir o vetor por um outro maior.
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

Page1 / 9

Cap 6 - Vets Listas e Seqs-4spp - O TAD Vetor O TAD Vetor...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online