Estrutura de Dados - Aula 07

405 visualizações

Publicada em

Estrutura de Dados - Anhanguera
AULA 07 - FILAS

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
405
No SlideShare
0
A partir de incorporações
0
Número de incorporações
26
Ações
Compartilhamentos
0
Downloads
25
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Estrutura de Dados - Aula 07

  1. 1. ANHANGUERA – 2015.2 ESTRUTURA DE DADOS AULA 07 – FILAS Prof. Thomás da Costa thomascosta@aedu.com
  2. 2. ESTRUTURA DE DADOS – Prof. Thomás da Costa FILAS FILAS
  3. 3. ESTRUTURA DE DADOS – Prof. Thomás da Costa Filas Conceitos: • Passamos por isso todos os dias. • Temos filas nos bancos, elevadores, estacionamentos e etc. • A fila é composta por elementos ou entidades. Exemplo: pessoas, carros, motos e etc. • A fila é um conceito computacional muito utilizado na área de tecnologia. • Temos vários tipos de soluções e sistemas que utilizam filas. FILAS
  4. 4. ESTRUTURA DE DADOS – Prof. Thomás da Costa Filas Conceitos: F.I.F.O FIRST IN, FIRST OUT. Primeiro a entrar, primeiro a sair. Conhecido também como Queue. FILAS
  5. 5. ESTRUTURA DE DADOS – Prof. Thomás da Costa Filas Como funciona: • Iniciar a fila. • Verifica se a fila está vazia. • Inserir um elemento no final da fila. • Retirar um elemento no início da fila. FILAS
  6. 6. ESTRUTURA DE DADOS – Prof. Thomás da Costa Filas struct alunos { char nome[100]; int idade; alunos *proximo; } *lista_alunos; char nome[100]; int idade; "Aluno 1" 20 alunos *proximo; char nome[100]; int idade; "Aluno 2" 21 alunos *proximo; char nome[100]; int idade; "Aluno 3" 23 alunos *proximo; NULL Estrutura “alunos”. Próximo elemento da fila. Primeiro elemento da fila. Primeiro elemento a sair da fila. FILAS Elemento 1 Elemento 2 Elemento 3
  7. 7. ESTRUTURA DE DADOS – Prof. Thomás da Costa Filas Onde utilizamos: • Servidor de fila de mensagem. • Conhecido como MQ ou Message Queue. • Trabalham com mensagens recebidas em uma fila que possuem um destinatário. • Utilizado principalmente em sistemas que precisam de alto processamento de informações. • Sites corporativos, bancos, e-commerce utilizam desse conceito. • Existem vários fabricantes. • IBM, Apache e Red Hat entre outros. FILAS
  8. 8. ESTRUTURA DE DADOS – Prof. Thomás da Costa Filas Observações: FILAS • Utilizamos o algoritmo de lista. • Podemos utilizar o algoritmo de lista encadeada, lista duplamente encadeada e lista circular. • Nos algoritmos, sempre inserimos um elemento no final. • No algoritmo de fila, a remoção acontece no primeiro elemento. • Em um algoritmo de lista podemos remover em qualquer posição. • O código possui mais complexidade.
  9. 9. ESTRUTURA DE DADOS – Prof. Thomás da Costa Filas Operações: • void iniciar_lista(); • int esta_vazio(); • void inserir_aluno(); • void listar_alunos(); • alunos *primeiro_elemento(); • void remover_aluno(); • void menu(); Vamos analisar as funções !!! FILAS
  10. 10. ESTRUTURA DE DADOS – Prof. Thomás da Costa void iniciar_lista() { lista_alunos = NULL; } Inicializando a lista com elemento vazio.
  11. 11. ESTRUTURA DE DADOS – Prof. Thomás da Costa int esta_vazio() { system("cls"); int total; if (lista_alunos == NULL) total = 0; else { alunos *p; p = lista_alunos; total = 1; while (p->proximo != NULL) { p = p->proximo; total++; } } return total; } Retorna o total de elementos de uma lista. Lista vazia.
  12. 12. ESTRUTURA DE DADOS – Prof. Thomás da Costa void inserir_aluno() { system("cls"); limpar_teclado(); alunos *novo_aluno = new alunos; cout << "Digite o nome do aluno:" << endl; gets(novo_aluno->nome); cout << "Digite a idade do aluno:" << endl; cin >> novo_aluno->idade; novo_aluno->proximo = NULL; if (lista_alunos == NULL) lista_alunos = novo_aluno; else { alunos *p; p = lista_alunos; while (p->proximo != NULL) p = p->proximo; p->proximo = novo_aluno; } } O mesmo algoritmo de lista encadeada !!!
  13. 13. ESTRUTURA DE DADOS – Prof. Thomás da Costa void listar_alunos() { system("cls"); if (lista_alunos == NULL) { cout << "Nenhum aluno cadastrado." << endl; cout << "Pressione uma tecla para continuar..." << endl; getch(); return; } alunos *p; p = lista_alunos; if (p->proximo == NULL) { cout << "------------------------------------" << endl; cout << "Nome do Aluno:" << p->nome << endl; cout << "Idade do Aluno:" << p->idade << endl; cout << "------------------------------------" << endl; } else { while (p != NULL) { cout << "------------------------------------" << endl; cout << "Nome do Aluno:" << p->nome << endl; cout << "Idade do Aluno:" << p->idade << endl; cout << "------------------------------------" << endl; p = p->proximo; } } getch(); } O mesmo algoritmo de lista encadeada !!!
  14. 14. ESTRUTURA DE DADOS – Prof. Thomás da Costa alunos *primeiro_elemento() { return lista_alunos; } Retorna o primeiro elemento.
  15. 15. ESTRUTURA DE DADOS – Prof. Thomás da Costa void remover_aluno() { alunos *p; p = lista_alunos; lista_alunos = lista_alunos->proximo; delete p; cout << "Aluno excluído com sucesso !!!" << endl; getch(); } Excluindo elemento da memória.
  16. 16. ESTRUTURA DE DADOS – Prof. Thomás da Costa void menu() { system("cls"); cout << "1 - INSERIR ALUNOS" << endl; cout << "2 - LISTAR ALUNOS" << endl; cout << "3 - EXCLUIR ALUNOS" << endl; cout << "4 - TAMANHO DA LISTA" << endl; cout << "5 - PRIMEIRO ELEMENTO" << endl; cout << "0 - SAIR" << endl; cout << "Digite uma opção: "; } Novas opções de menu !!!
  17. 17. ESTRUTURA DE DADOS – Prof. Thomás da Costa • Conceito utilizado no dia-a-dia. • FIFO – First in, First Out. • Primeiro elemento entra no final da fila. • Aprimoramos o programa utilizado em lista para remover sempre o primeiro elemento. • A estrutura aponta para o primeiro elemento da lista. Com isso mantemos a referência para o início da lista. • Utilizado em servidores de filas conhecido como MQ. Resumo FILAS
  18. 18. Obrigado !!! ANHANGUERA – 2015.2

×