{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Cap 6 - Vets Listas e Seqs-4spp

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

Info icon This 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)
Image of page 1

Info icon This 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
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.
Image of page 3

Info icon This 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 ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern