Você está na página 1de 21

Algoritmos e Estruturas de Dados

Rodrigo Richard Gomes

Estruturas de dados bsicas


A plataforma .NET fornece classes de estruturas de dados pr-empacotadas Essas classes so conhecidas como classes de coleo 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;

Estruturas de dados bsicas


Colees disponveis na plataforma .NET
Array ArrayList Queue Stack Hashtable SortedList

Estruturas de dados bsicas


Classe Array
Principais membros de funo/mtodos
BinarySearch: realiza pesquisa binria no Array Clear: atribui zero, false ou null a uma faixa do Array, dependendo do seu tipo Copy e ConstrainedCopy: copiam parte ou todo o Array IndexOf: procura por um objeto no Array e retorna sua posio LastIndexOf: procura por um objeto no Array e retorna a ltima posio em que ele foi encontrado

Estruturas de dados bsicas


Classe Array
Principais membros de funo/mtodos
Reverse: inverte o contedo de parte (ou todo) o Array Sort: ordena um Array

Estruturas de dados bsicas


Classe ArrayList
Frequentemente, precisamos usar vetores sem, entretanto, saber o tamanho ideal A classe ArrayList imita um vetor convencional e, adicionalmente, fornece redimensionamento dinmico Um objeto ArrayList pode conter uma quantidade de elementos menor ou igual sua capacidade

Estruturas de dados bsicas


Classe ArrayList
A capacidade de um ArrayList pode ser manipulada atravs de sua propriedade Capacity Se um ArrayList precisa crescer, por padro ele duplica sua capacidade (Capacity) atual ArrayLists armazenam referncias para objetos, sendo assim, podem conter objetos de qualquer tipo

Estruturas de dados bsicas


Classe ArrayList
Criao de um ArrayList sem informar a capacidade
Ex: ArrayList AL = new ArrayList();

Criao de um ArrayList informando a capacidade


Ex: ArrayList AL = new ArrayList(10);

Estruturas de dados bsicas


Classe ArrayList
A capacidade (Capacity) e a quantidade de elementos (Count) inicial de um ArrayList ZERO Aps inserir o primeiro elemento, a capacidade igual a 4 Exerccio: faa um pequeno programa que crie um ArrayList e imprima sua capacidade e quantidade de elementos. Adicione um elemento e repita a impresso.

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(); } } }

Mtodo Add BinarySearch Clear Contains Count IndexOf Insert LastIndexOf Remove RemoveAt RemoveRange Reverse Sort ToArray TrimToSize

Descrio Adiciona um objeto no ArrayList e retorna sua posio Realiza uma busca binria e retorna a posio do elemento ( partir de 0) ou um nmero negativo se no for encontrado Remove todos os elementos do ArrayList sem alterar a capacidade Retorna true se um objeto especificado estiver no ArrayList Retorna a quantidade de elementos do ArrayList Retorna o ndice da primeira ocorrncia de um objeto especificado no ArrayList Insere um objeto na posio especificada. Ocorre uma exceo se a posio no existir. Retorna o ndice da ltima ocorrncia de um objeto especificado no ArrayList Remove a primeira ocorrncia do objeto especificado Remove um objeto no ndice especificado Remove uma determinada quantidade de elementos partir do ndice especificado Inverte a ordem dos elementos do ArrayList Ordena o ArrayList Copia os elementos do ArrayList para um Array Altera a capacidade do ArrayList para a quantidade de elementos contidos atualmente

Estruturas de dados bsicas


Mtodo Add Exemplo AL.Add(15); AL.Add(3.14159); AL.Add(AED); Posicao = AL.BinarySearch(AED); AL.Clear() if (AL.Contains(15)) Console.Write(Elemento encontrado); Qtde = AL.Count; Pos15 = AL.IndexOf(15); AL.Insert(2, 125); // Adiciona 125 na posio 2 Pos15 = AL.LastIndexOf(15); AL.Remove(3.14159); // No ocorre exceo se elemento inexistente AL.Remove(1); // Ocorre exceo de posio inexistente AL.RemoveRange(0, 2); // Remove 2 elementos partir da posio 0. Ocorre exceo se no existir a quantidade de elementos desejada AL.Reverse(); // Inverte os elementos de todo o ArrayList AL.Reverse(3,5); // Inverte os 5 elementos partir da posio 3 BinarySearch Clear Contains Count IndexOf Insert LastIndexOf Remove RemoveAt RemoveRange Reverse

Estruturas de dados bsicas


Mtodo Sort ToArray Exemplo AL.Sort(); Object[] vetor; ... vetor = AL.ToArray(); AL.TrimToSize();

TrimToSize

Estruturas de dados bsicas


Classe Queue
Implementa a estrutura de dados FILA Filas so estruturas do tipo FIFO (First-in First-out) Operaes bsicas de uma pilha : enqueue e 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

Estruturas de dados bsicas


Mtodo Descrio

Clear Contains Count Dequeue Enqueue Peek

Remove todos os elementos do Queue Retorna true se um objeto especificado estiver no Queue Retorna a quantidade de elementos no Queue Remove e retorna o objeto posicionado no incio do Queue Adiciona um objeto no final do Queue Retorna o objeto posicionado no incio do Queue sem removlo

Estruturas de dados bsicas


Classe Stack
Implementa a estrutura de dados PILHA Pilhas so estruturas do tipo LIFO (Last-in Firstout) Operaes bsicas de uma pilha : push e pop 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

Estruturas de dados bsicas


Mtodo Clear Contains Count Peek Pop Push Descrio Remove todos os elementos do Stack Retorna true se um objeto especificado estiver no Stack Retorna a quantidade de elementos do Stack Retorna uma elemento sem remov-lo do topo da PILHA Retorna e remove um elemento do topo da PILHA Adiciona um elemento ao topo da PILHA

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 CPF como ndice para armazenar e pesquisar tais dados, precisaria criar um vetor com 9.999.999.999 posies O problema que as chaves estaro espalhadas em um intervalo muito grande

Estruturas de dados bsicas


Classe Hashtable
A soluo converter as chaves (no exemplo anterior, o CPF) em ndices exclusivos no vetor, o que a base da tcnica de hashing Uma funo de hash efetua um clculo para determinar a posio de determinado dado no vetor

Estruturas de dados bsicas


Mtodo Add Clear Contains ContainsKey ContainsValue Count Remove Descrio Adiciona um objeto com chave e valores determinados na tabela hash Remove todos os elementos da tabela hash Verifica se a tabela hash contm um objeto com determinada chave Idem Contains Verifica se a tabela hash contm um objeto com determinado valor Retorna a quantidade de elementos armazenados na tabela hash Remove o elemento especificado da tabela hash

Você também pode gostar