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

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

INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior.

Apresentações semelhantes


Apresentação em tema: "INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior."— Transcrição da apresentação:

1 INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior

2 Sumário o Definição de Estrutura de dados; o Tipos de estrutura de dados; o Implementação de estruturas de dados; o Exercicios;

3 Introdução Programas consistem de duas partes: Algoritmos; Estrutura de dados. Um bom Programa, na realidade, é a combinação de ambos

4 Introdução A escolha e a implementação de uma boa estrutura de dados são tão importantes quanto as rotinas que manipulas esses dados. A forma como a informação é organizada e acessada é normalmente determinada pela natureza do programa.

5 Introdução A escolha e a implementação de uma boa estrutura de dados são tão importantes quanto as rotinas que manipulas esses dados. A forma como a informação é organizada e acessada é normalmente determinada pela natureza do programa.

6 Introdução As estruturas de dados são utilizadas para realizar o armazenamento e a recuperação de dados que se deseja trabalhar. Onde é meu lugar??

7 Introdução Existem basicamente 4 tipos de mecanismos responsáveis por essas condições: 1. Fila; 2. Pilha 3. Lista; 4. Árvore binária*.

8 FILA Uma fila é simplesmente uma lista linear de informações, que é acessada seguindo o principio: o primeiro que entra e o primeiro que sai (First In First Out); FIFO Primeiro a sair Segundo ocupa o lugar do primeiro 1

9 FILA - Implementação Interface do tipo genérico da fila: 1. Função fila-cria: - Aloca dinamicamente a estrutura da fila; - Inicializa seus campos e retorna seu ponteiro. 2. Funcao fila_insere e funcao fila_retira: - Insere e retira, respectivamente, um valor real na fila. 3. Função fila_vazia: - Informa se a fila está ou não vazia. 4. Função libera_fila: - Destroi a fila, liberando toda a memória usada pela estrutura.

10 FILA - Implementação -Fila* fila_cria (void); // cria uma fila - void fila_insere (Fila* p, float v); // enfileira um novo elemento - float fila_retira (Fila* p); // retira um elemento (primeiro ) - int fila_vazia (Fila* p); // verifica se a fila está vazia - void fila_libera (Fila* p); // esvazia toda a estrutura alocada para a fila, liberando seus elementos

11 FILA - Implementação -Fila* fila_cria (void); // cria uma fila - void fila_insere (Fila* p, float v); // enfileira um novo elemento - float fila_retira (Fila* p); // retira um elemento (primeiro ) - int fila_vazia (Fila* p); // verifica se a fila está vazia - void fila_libera (Fila* p); // esvazia toda a estrutura alocada para a fila, liberando seus elementos

12 FILA - Implementação Typedef struct fila Fila; Implementacao de fila com vetor: – Vetor (vet) armazena os elementos da fila. – Estruturas de fila: #define Num_elementos 100 // numero máximo de elementos Typedef struct fila { int N; //número de elementos atualmente na fila int INI; //posição do próximo elemento na fila float Vet [ Num_elementos ] ; } Fila ;

13 FILA - Implementação Agora que foi criado a estrutura da fila Inicia-se a construção da função responsável por criar a fila dentro do programa. Fila * fila_cria (void) Fila* fila_cria (void) { Fila* f = (Fila*) malloc (sizeof(Fila)); //alocando memoria f->n = 0; // inicializa a fila como vazia; f->ini = 0; // escolhe uma posição inicial; return f; }

14 FILA - Implementação Visão atual da fila Número de elementos atualmente na fila = 0 Número de elementos que a fila pode ter = 10 Inicio Fim

15 FILA - Implementação Os dois passos inicias na implementação foram completados. Passo seguinte, implementar a função responsável por inserir elementos na fila. Deve-se atentar as fatores de segurança no momento da inserção. Verificar se ainda existe vagas na fila

16 FILA - Implementação void fila_insere (Fila* f, float v) { int fim; if (f-> == N) { printf (Fila não tem espaço disponível); exit (1); } fim = (f->ini + f->n)%N; //cálculo do índice do último elemento f->vet[fim] = v; f->n++; } void fila_insere (Fila* f, float v) { int fim; if ( f n == Num_elementos) { printf(Fila lotada); exit(1); } fim = (f ini + f n); f->vet[fim] = v; f n++; }

17 FILA - Implementação void fila_insere (Fila* f, float v) { int fim; if (f-> == N) { printf (Fila não tem espaço disponível); exit (1); } fim = (f->ini + f->n)%N; //cálculo do índice do último elemento f->vet[fim] = v; f->n++; } float fila_retira (Fila* f); { float v; if ( fila_vazia(f)) { printf(Fila vazia); exit(1); } v = f vet[f ini]; f ini = f ini+1; f n--; }

18 FILA - Implementação int fila_vazia (Fila* f) { return (f->n == 0); } Implementação da função fila_vazia

19 FILA - Implementação Void libera_fila (Fila* f) { free(f); } Por fim, temos a função responsável pela liberação da memória alocada;


Carregar ppt "INTELIGÊNCIA ARTIFICIAL Curso: Ciências da Computação Prof:. Arimatéia Júnior."

Apresentações semelhantes


Anúncios Google