Estruturas de dados básicas dotNET

download Estruturas de dados básicas dotNET

of 21

Transcript of Estruturas de dados básicas dotNET

  • 8/4/2019 Estruturas de dados bsicas dotNET

    1/21

  • 8/4/2019 Estruturas de dados bsicas dotNET

    2/21

    Estruturas de dados bsicas

    A plataforma .NET fornece classes de estruturas

    de dados pr-empacotadas

    Essas classes so conhecidas como classes de

    Ao utilizar essas classes, ns utilizamos as

    estruturas de dados sem nos preocuparmos de

    que maneira elas foram implementadas

    (reutilizao de cdigo)

    Necessrio usar o namespace System.Collections;

  • 8/4/2019 Estruturas de dados bsicas dotNET

    3/21

    Estruturas de dados bsicas

    Colees disponveis na plataforma .NET

    Array

    ArrayList

    Stack

    Hashtable

    SortedList

  • 8/4/2019 Estruturas de dados bsicas dotNET

    4/21

    Estruturas de dados bsicas

    Classe Array

    Principais membros de funo/mtodos

    BinarySearch: realiza pesquisa binria noArray

    Clear: atribui zero alse ou nulla uma faixa doArra

    dependendo do seu tipo

    Copye ConstrainedCopy: copiam parte ou todo oArray

    IndexOf: procura por um objeto noArraye retorna sua

    posio LastIndexOf: procura por um objeto noArraye retorna

    a ltima posio em que ele foi encontrado

  • 8/4/2019 Estruturas de dados bsicas dotNET

    5/21

    Estruturas de dados bsicas

    Classe Array

    Principais membros de funo/mtodos

    Reverse: inverte o contedo de parte (ou todo) oArray

    Sort: ordena umArra

  • 8/4/2019 Estruturas de dados bsicas dotNET

    6/21

  • 8/4/2019 Estruturas de dados bsicas dotNET

    7/21

    Estruturas de dados bsicas

    Classe ArrayList

    Frequentemente, precisamos usar vetores sem,

    entretanto, saber o tamanho ideal

    ,

    adicionalmente, fornece redimensionamento

    dinmico

    Um objetoArrayListpode conter uma quantidade

    de elementos menor ou igual sua capacidade

  • 8/4/2019 Estruturas de dados bsicas dotNET

    8/21

    Estruturas de dados bsicas

    Classe ArrayList

    A capacidade de umArrayListpode ser

    manipulada atravs de sua propriedade Capacity

    ,

    duplica sua capacidade (Capacity) atual

    ArrayLists armazenam referncias para objetos,

    sendo assim, podem conter objetos de qualquer

    tipo

  • 8/4/2019 Estruturas de dados bsicas dotNET

    9/21

    Estruturas de dados bsicas

    Classe ArrayList

    Criao de um ArrayList sem informar a

    capacidade

    Ex:Arra List L = new Arra List

    Criao de um ArrayList informando a capacidade

    Ex:ArrayList AL = new ArrayList(10);

  • 8/4/2019 Estruturas de dados bsicas dotNET

    10/21

    Estruturas de dados bsicas

    Classe ArrayList

    A capacidade (Capacity) e a quantidade de

    elementos (Count) inicial de umArrayList ZERO

    ,

    igual a 4

    Exerccio: faa um pequeno programa que crie um

    ArrayListe imprima sua capacidade e quantidade

    de elementos. Adicione um elemento e repita a

    impresso.

  • 8/4/2019 Estruturas de dados bsicas dotNET

    11/21

    Estruturas de dados bsicas

    Classe ArrayList

    using System;

    using System.Collections;

    namespace ExemploArrayList

    {

    class Program

    {

    static void Main(string[] args)

    {ArrayList AL = new ArrayList();

    Console.Write("AL.Capacity = {0} - AL.Count = {1}\n", AL.Capacity, AL.Count);

    AL.Add(1);

    Console.Write("AL.Capacity = {0} - AL.Count = {1}\n", AL.Capacity, AL.Count);

    Console.ReadKey();

    }

    }}

  • 8/4/2019 Estruturas de dados bsicas dotNET

    12/21

    Mtodo Descrio

    Add Adiciona um objeto noArrayListe retorna sua posio

    BinarySearch Realiza uma busca binria e retorna a posio do elemento ( partir de 0) ou um

    nmero negativo se no for encontrado

    Clear Remove todos os elementos doArrayListsem alterar a capacidade

    Contains Retorna true se um objeto especificado estiver noArrayList

    Count Retorna a quantidade de elementos doArrayList

    IndexOf Retorna o ndice da primeira ocorrncia de um objeto especificado noArrayList

    Insert Insere um objeto na posio especificada. Ocorre uma exceo se a posio no

    existir.

    LastIndexOf Retorna o ndice da ltima ocorrncia de um objeto especificado noArrayListRemove Remove a primeira ocorrncia do objeto especificado

    RemoveAt Remove um objeto no ndice especificado

    RemoveRange Remove uma determinada quantidade de elementos partir do ndice

    especificado

    Reverse Inverte a ordem dos elementos doArrayList

    Sort Ordena oArrayList

    ToArray Copia os elementos doArrayListpara umArray

    TrimToSize Altera a capacidade doArrayListpara a quantidade de elementos contidos

    atualmente

  • 8/4/2019 Estruturas de dados bsicas dotNET

    13/21

    Estruturas de dados bsicasMtodo Exemplo

    Add AL.Add(15);

    AL.Add(3.14159);

    AL.Add(AED);BinarySearch Posicao = AL.BinarySearch(AED);

    Clear AL.Clear()

    Contains if (AL.Contains(15)) Console.Write(Elemento encontrado);

    Count Qtde = AL.Count;

    IndexOf Pos15 = AL.IndexOf(15);

    Insert AL.Insert(2, 125); // Adiciona 125 na posio 2

    LastIndexOf Pos15 = AL.LastIndexOf(15);

    Remove AL.Remove(3.14159); // No ocorre exceo se elemento inexistenteRemoveAt AL.Remove(1); // Ocorre exceo de posio inexistente

    RemoveRange AL.RemoveRange(0, 2); // Remove 2 elementos partir da posio 0. Ocorre

    exceo se no existir a quantidade de elementos desejada

    Reverse AL.Reverse(); // Inverte os elementos de todo oArrayList

    AL.Reverse(3,5); // Inverte os 5 elementos partir da posio 3

  • 8/4/2019 Estruturas de dados bsicas dotNET

    14/21

    Estruturas de dados bsicasMtodo Exemplo

    Sort AL.Sort();

    ToArray Object[] vetor;...

    vetor = AL.ToArray();

    TrimToSize AL.TrimToSize();

  • 8/4/2019 Estruturas de dados bsicas dotNET

    15/21

    Estruturas de dados bsicas

    Classe Queue

    Implementa a estrutura de dados FILA

    Filas so estruturas do tipo FIFO (First-in First-out)

    dequeue

    Enqueue recebe um objeto como argumento e o

    adiciona no fim da FILA (enfileiramento)

    Dequeue remove e retorna o objeto que est no

    incio da FILA

  • 8/4/2019 Estruturas de dados bsicas dotNET

    16/21

    Estruturas de dados bsicasMtodo Descrio

    Clear Remove todos os elementos do Queue

    Contains Retorna true se um objeto especificado estiver no Queue

    Count Retorna a quantidade de elementos no Queue

    Dequeue Remove e retorna o objeto posicionado no incio do Queue

    Enqueue Adiciona um objeto no final do QueuePeek Retorna o objeto posicionado no incio do Queue sem remov-

    lo

  • 8/4/2019 Estruturas de dados bsicas dotNET

    17/21

    Estruturas de dados bsicas

    Classe Stack

    Implementa a estrutura de dados PILHA

    Pilhas so estruturas do tipo LIFO (Last-in First-

    Operaes bsicas de uma pilha :push epop

    Push recebe um objeto como argumento e o

    empilha no topo da pilha

    Pop remove e retorna o objeto que est no topo

    da pilha

  • 8/4/2019 Estruturas de dados bsicas dotNET

    18/21

    Estruturas de dados bsicasMtodo Descrio

    Clear Remove todos os elementos do Stack

    Contains Retorna true se um objeto especificado estiver no Stack

    Count Retorna a quantidade de elementos do Stack

    Peek Retorna uma elemento sem remov-lo do topo da PILHA

    Pop Retorna e remove um elemento do topo da PILHAPush Adiciona um elemento ao topo da PILHA

  • 8/4/2019 Estruturas de dados bsicas dotNET

    19/21

    Estruturas de dados bsicas Classe Hashtable

    Implementao de tabelas hash Situao: Voc precisa pesquisar eficientemente

    os dados dos 1000 funcionrios de uma empresa.

    Se voc quisesse utilizar os 11 dgitos do CPFcomo ndice para armazenar e pesquisar taisdados, precisaria criar um vetor com9.999.999.999 posies

    O problema que as chaves estaro espalhadasem um intervalo muito grande

  • 8/4/2019 Estruturas de dados bsicas dotNET

    20/21

    Estruturas de dados bsicas

    Classe Hashtable

    A soluo converter as chaves (no exemploanterior, o CPF) em ndices exclusivos no vetor, o

    ue a base da tcnica de hashin

    Uma funo de hash efetua um clculo paradeterminar a posio de determinado dado no

    vetor

  • 8/4/2019 Estruturas de dados bsicas dotNET

    21/21

    Estruturas de dados bsicasMtodo Descrio

    Add Adiciona um objeto com chave e valores determinados na

    tabela hash

    Clear Remove todos os elementos da tabela hash

    Contains Verifica se a tabela hash contm um objeto com

    ContainsKey Idem Contains

    ContainsValue Verifica se a tabela hash contm um objeto com

    determinado valor

    Count Retorna a quantidade de elementos armazenados na tabela

    hash

    Remove Remove o elemento especificado da tabela hash