INTELIGÊNCIA ARTIFICIAL

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

Marco Antonio Montebello Júnior
Marco Antonio Montebello Júnior
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Listas encadeadas Prof. Rosana Palazon.
Algoritmos de manipulação de estruturas elementares de dados
Listas duplamente encadeadas
Programação II Estruturas de Dados
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
TADS – Tipos Abstratos de Dados
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
Filas David Menotti Estruturas de Dados I DECOM – UFOP.
Pesquisa em Memória Primária – Árvores de Busca
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Aula T12 – BCC202 Listas Túlio Toffolo
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
LPG - I: Alocação Dinâmica de Memória - Ponteiros
AED – Algoritmos e Estruturas de Dados
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
Slides: Prof. João Fabro UTFPR - Curitiba
Slides: Prof. João Fabro UTFPR - Curitiba
Fundamentos de Programação 1
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
ALGORITMOS E ESTRUTURAS DE DADOS
Prof. Hilton Cardoso Marins Junior LISTA LINEAR
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Algoritmos e Estruturas de Dados
Denise Guliato Faculdade de Computação – UFU
Árvores Binárias de Pesquisa
TAD Pilha com Alocação Dinâmica de Memória
Implementação de FILAS com Alocação Dinâmica
Lista Encadeada Circular Lista Duplamente Encadeada
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Alocação Dinâmica de Memória
Denise Guliato Faculdade de Computação – UFU
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Estruturas de Dados Aula 9: Listas (parte 1)
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Estruturas de Dados Aula 11: TAD Pilha
Árvore Binária de Busca
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
Filas. #define MAXFILA 100 typedef struct queue { int item [ MAXFILA]; int inic, fim; } fila; fila q;
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Estruturas de Dados Aula 17: Estruturas Genéricas
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Estruturas de Dados Aula 15: Árvores
Prof. Hilton Cardoso Marins Junior ÁRVORES BINÁRIAS.
Prof. Alessandro Gonçalves
Professor Ulisses Vasconcelos
Programação de Computadores I – Ponteiros Profa. Mercedes Gonzales Márquez.
Objetivos Ao concluir esta Disciplina espera-se que os alunos sejam capazes de: Distinguir os conceitos de Estrutura e Dados; Compreender o que são, como.
Estrutura de Dados Aula 3 - Listas
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
Estrutura de Dados Prof. André Cypriano M. Costa
Estrutura de Dados Prof. André Cypriano M. Costa
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
INF1007 – Programação 2 9 – Pilhas
Transcrição da apresentação:

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

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

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

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.

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.

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??

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

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

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.

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

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

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 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 ;

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

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

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

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++; }

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++; }

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

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