Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Projeto de Sistemas - Aula005
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

Programação aula003

Download to read offline

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Programação aula003

  1. 1. Aula 003 Estrutura de Dados PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  2. 2. PRONATEC Programa Nacional de Acesso ao Ensino Técnico e Emprego
  3. 3. 1. Estrutura de Dados • Até aqui vimos as estruturas de dados que não se alteram em sua forma ou dimensão: vetor, matriz e record. Por isso elas são chamadas “Estruturas de Dados Estáticas”. • Agora vamos estudar as “Estruturas de Dados Dinâmicas” que podem se alterar em forma e dimensões e podem “crescer” ou “diminuir” de acordo com a necessidade de quem as utiliza. • Dentre as estruturas dinâmicas mais conhecidas estudaremos: conjuntos, listas ligadas, filas, pilhas, árvores e grafos.
  4. 4. 2. Conjuntos • Um conjunto é uma coleção de elementos sem repetição • Operações: saber se está vazio, elemento pertence ou não ao conjunto, inserir ou remover elemento, união e interseção entre conjuntos. • Vamos fazer as operações: • CriaConjunto (c): inicializa a estrutura do conjunto • ConjuntoVazio (c): retorna TRUE se “c” é vazio • Cardinalidade (c): número de elementos em “c” • Pertence (x,C): retorno TRUE se “x” está em “C” • Insere(x,C): inclui elemento “x” no conjunto “C” • Remove(x,C): remove “x” do conjunto “C” • Uniao(c1,c2,c3): une os conjuntos “c1” e “c2” dando como resultado o conjunto “c3” • Intersecao(c1,c2,c3): faz a interseção entre os conuntos “c1” e “c2” dando o resultado no conjunto “c3” • Contido(c1,c2): retorna TRUE se “c1” está contido em “c2”
  5. 5. 3. Definições para Conjuntos • A estrutura de um conjunto em pascal pode ser definida como um tipo: CONST max = 10000; TYPE vetor = array[1..max] of integer; conjunto = record tam: integer; v: vetor; end; • Com essa definição podemos declarar uma variável do tipo “conjunto” assim: VAR c : conjunto; • Função para criar um Conjunto, somente faz o tamanho ser “0” Procedure CriaConjunto (var c:conjunto); Begin c.tam := 0; End;
  6. 6. 4. Operações com Conjuntos • Verificar se um conjunto está vazio: Procedure ConjuntoVazio (c:conjunto); Begin result := c.tam = 0; End; • Verificar o tamanho do conjunto Function Cardinalidade (c:conjunto):integer; Begin result := c.tam; End; • Ver se um elemento pertence ao conjunto Function Pertence (x:integer; c:conjunto):boolean; Var i:integer; Begin result := false; i:=1; while (i<=c.tam)and(not result) do begin result := c.v[i] = x; i:=i+1; end; End; • Inserir um elemento no conjunto Procedure Insere (x:integer; var c:conjunto); Begin if Pertence(x,c) then exit; c.v [c.tam+1] := x; c.tam := c.tam + 1; End; • Devolve a posição de um elemento no vetor Function Posicao (x:integer; c:conjunto):integer; Var i:integer; Begin result:=0; i:=1; while (i<=c.tam)and(result=0) do begin if c.v[i] = x then result:=i; i:=i+1; end; End; • Remover elemento de um conjunto Procedure Remove(x:integer; c:conjunto); Var i,p:integer; Begin p:=Posicao(x,c); if (p=0) then exit; for i:=p to c.tam-1 do c.v[i] := c.v[i+1]; c.tam := c.tam – 1; End;
  7. 7. 5. Operações entre Conjuntos • Fazer união entre dois conjuntos: Procedure Uniao (c1,c2:conjunto; var c3:conjunto); Var i:integer; Begin c3.tam := 0; for i:=1 to c1.tam do Insere(c1.v[i], c3); for i:=1 to c2.tam do Insere(c2.v[i], c3); End; • Fazer interseção entre dois conjuntos: Procedure Intersecao (c1,c2:conjunto; var c3:conjunto); Var i:integer; Begin c3.tam := 0; for i:=1 to c1.tam do if Pertence (c1.v[i], c2) then Insere(c1.v[i], c2); End; • Verifica se um conjunto está contido no outro Function Contido (c1,c2:conjunto) : boolean; Var i:integer; Begin result := True; for i:=1 to c1.tam do result := result and Pertence (c1.v[i], c2); End;

Views

Total views

331

On Slideshare

0

From embeds

0

Number of embeds

7

Actions

Downloads

5

Shares

0

Comments

0

Likes

0

×