A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

André de Freitas Smaira Henrique Musseli Cezar José T. da Silva Junior.

Apresentações semelhantes


Apresentação em tema: "André de Freitas Smaira Henrique Musseli Cezar José T. da Silva Junior."— Transcrição da apresentação:

1 André de Freitas Smaira Henrique Musseli Cezar José T. da Silva Junior

2 Para introduzir o conceito de mapas precisamos abordar inicialmente o conceito de coleções. Uma coleção é uma estrutura de dados que permite armazenar vários objetos; A coleção é, em si, um objeto também: - Um objeto de agregação. As operações que podem ser feitas em coleções variam mas normalmente incluem: - Adição de elementos; - Remoção de elementos; - Acesso aos elementos; - Pesquisa de elementos; - Indagar sobre atributos.

3 Um mapa armazena pares (chave, valor) chamados itens: - Chaves e valores podem ser de qualquer tipo; - Elemento e Valor são sinônimos. A chave é utilizada para achar um elemento rapidamente: - Estruturas especiais são usadas para que a pesquisa seja rápida. Diz-se portanto que um mapa "mapeia chaves para valores. O Mapa pode ser mantido ordenado ou não (com respeito às chaves). Normalmente implementada como "Tabela Hash" ou "Árvore.

4 As operações mais importantes de uma coleção do tipo Conjunto são: - Adição de elementos: Adicionar um item no mapa (fornecendo chave e valor). - Remoção de elementos: Remover um item com chave dada. - Acesso aos elementos: Iterar sobre os itens. - Pesquisa de elementos: Descobrir se um elemento com chave dada está na coleção. - Indagar sobre atributos: Obter o número de elementos. Observe que o acesso à coleção sempre é feita conhecendo a chave.

5 #include "arvbin.h" /* Estruturas */ typedef struct Mapa{ Tree *T; }mapa; /* Funções */ mapa *definemap(void); tipo_elem *searchm(char *id, mapa *M); bool insertm(tipo_elem e, mapa *M); bool replacem(tipo_elem e, mapa *M); tipo_elem *removem(char *id, mapa *M); void deleteMap(mapa *M); void printM(mapa *M);

6 Para o desenvolvimento desse mapa, foi utilizada uma Árvore Binária de Busca (ABB). A árvore binária (árvore de busca binária ou árvore de pesquisa binária) é uma estrutura de dados onde todos os nós são valores, todos nós à esquerda contêm uma sub-árvore com as chaves menores ao nó raiz da sub- árvore e todos os nós da sub-árvore à direita contêm somente chaves maiores ao nó raiz. (Esta é a forma padrão, podendo serem invertidas as sub-árvores, dependendo da aplicação). Os valores são relevantes na árvore de busca binária. O objetivo desta árvore é estruturar os dados de forma flexível, permitindo pesquisa binária.

7 /* Estruturas */ typedef struct elem{ char key[30]; char *str/*, key[30]*/; }tipo_elem; typedef struct no{ struct no *lig_parent, *lig_leftChild, *lig_rightChild; tipo_elem content; }node; typedef struct arvore{ node *root; int nelem; }Tree;

8 /* Funções */ Tree *define(void); int sizeA(Tree *T); int isEmpty(Tree *T); node *root(Tree *T); node *parent(node *c); int isInternal(node *c); int isExternal(node *c); int isRoot(node *c); node *leftChild(node *c); node *rightChild(node *c); node *sibiling(node *c); void swap(node *c, node *d); void replace(node *c, tipo_elem e); tipo_elem elem(node *v); node *search(Tree *T, char *k, node *v); node *insert(Tree *T, tipo_elem x); tipo_elem removenode(Tree *T, char *k); node *expandExternal(node *v); node *removeAboveExternal(Tree *T, node *v); node *encontreSubstituto(node *v); void printA(Tree *A, node *n); void deleteArv(Tree *T, node *c);

9


Carregar ppt "André de Freitas Smaira Henrique Musseli Cezar José T. da Silva Junior."

Apresentações semelhantes


Anúncios Google