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

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

INTELIGÊNCIA ARTIFICIAL

Apresentações semelhantes


Apresentação em tema: "INTELIGÊNCIA ARTIFICIAL"— Transcrição da apresentação:

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

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

3 Programas consistem de duas partes: Algoritmos; Estrutura de dados.
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: Fila; Pilha Lista; Á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 1 3 1 2 5 4 Primeiro a sair Segundo ocupa o lugar do primeiro

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 //cria uma fila //enfileira um novo elemento
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 //cria uma fila //enfileira um novo elemento
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 – Vetor (vet) armazena os elementos da fila.
Typedef struct fila Fila; Implementacao de fila com vetor: – Vetor (vet) armazena os elementos da fila. – Estruturas de fila: #define Num_elementos // 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 Inicio
Número de elementos atualmente na fila = 0 Número de elementos que a fila pode ter = 10 Fim

15 Verificar se ainda existe vagas na fila
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 { int fim; if ( fn == Num_elementos)
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++; 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++; }

17 FILA - Implementação 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--; 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++; }

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

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


Carregar ppt "INTELIGÊNCIA ARTIFICIAL"

Apresentações semelhantes


Anúncios Google