View
222
Download
0
Category
Preview:
Citation preview
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
Recommended