Estrutura de Dados - Aula 08

821 visualizações

Publicada em

Estrutura de Dados - Anhanguera
AULA 08 - PILHAS

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
821
No SlideShare
0
A partir de incorporações
0
Número de incorporações
42
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 08

  1. 1. ANHANGUERA – 2015.2 ESTRUTURA DE DADOS AULA 08 – PILHAS Prof. Thomás da Costa thomascosta@aedu.com
  2. 2. ESTRUTURA DE DADOS – Prof. Thomás da Costa PILHAS PILHAS
  3. 3. ESTRUTURA DE DADOS – Prof. Thomás da Costa Pilhas O que é?: É um TAD, onde o último a entrar é o primeiro a sair. A pilha é um tipo de estrutura bastante utilizado em sistemas computacionais. PILHAS
  4. 4. ESTRUTURA DE DADOS – Prof. Thomás da Costa Conceitos: L.I.F.O LAST IN, FIRST OUT. Último a entrar, primeiro a sair. Conhecido também como Stack. Pilhas PILHAS
  5. 5. ESTRUTURA DE DADOS – Prof. Thomás da Costa Como funciona: • Iniciar a pilha. • Verifica se a pilha está vazia. • Inserir um elemento no final da pilha. • Retirar um elemento no final da pilha. Pilhas PILHAS
  6. 6. ESTRUTURA DE DADOS – Prof. Thomás da Costa struct alunos { char nome[100]; int idade; alunos *proximo; } *primeiro; 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 pilha. Primeiro elemento da pilha. Primeiro elemento a sair da pilha. Elemento 1 Elemento 2 Elemento 3 Pilhas PILHAS
  7. 7. ESTRUTURA DE DADOS – Prof. Thomás da Costa Onde utilizamos: • Funções recursivas. • Navegação entre páginas dentro de um navegador web. • Mecanismo de desfazer uma ação e refazê-la em um editor de texto. Pilhas PILHAS
  8. 8. ESTRUTURA DE DADOS – Prof. Thomás da Costa Observações: • 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 pilha, a remoção acontece no último elemento. • Nos nossos exemplos conseguirmos percorrer a pilha do começo mas podemos retirar somente do final. Pilhas PILHAS
  9. 9. ESTRUTURA DE DADOS – Prof. Thomás da Costa Operações: Vamos analisar as funções !!! Pilhas PILHAS • void iniciar_lista(); • int esta_vazio(); • void inserir_aluno(); • void listar_alunos(); • alunos *ultimo_elemento(); • void remover_aluno(); • void menu(); • void limpar_teclado();
  10. 10. ESTRUTURA DE DADOS – Prof. Thomás da Costa Inicializando a lista com elemento vazio. void iniciar_lista() { primeiro = NULL; }
  11. 11. ESTRUTURA DE DADOS – Prof. Thomás da Costa Retorna o total de elementos de uma lista. Lista vazia. int esta_vazio() { system("cls"); int total; if (primeiro == NULL) total = 0; else { alunos *p; p = primeiro; total = 1; while (p->proximo != NULL) { p = p->proximo; total++; } } return total; }
  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; fgets(novo_aluno->nome, sizeof(novo_aluno->nome), stdin); cout << "Digite a idade do aluno:" << endl; cin >> novo_aluno->idade; novo_aluno->proximo = NULL; if (primeiro == NULL) { primeiro = novo_aluno; ultimo = novo_aluno; } else { alunos *p; p = primeiro; while (p->proximo != NULL) p = p->proximo; p->proximo = novo_aluno; ultimo = novo_aluno; } }
  13. 13. ESTRUTURA DE DADOS – Prof. Thomás da Costa void listar_alunos() { system("cls"); if (primeiro == NULL) { cout << "Nenhum aluno cadastrado." << endl; cout << "Pressione uma tecla para continuar..." << endl; getch(); return; } alunos *p; p = primeiro; 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(); }
  14. 14. ESTRUTURA DE DADOS – Prof. Thomás da Costa Retorna o último elemento. alunos *ultimo_elemento() { return ultimo; }
  15. 15. ESTRUTURA DE DADOS – Prof. Thomás da Costa void remover_aluno() { alunos *p = primeiro; while (p->proximo != ultimo) p = p->proximo; delete p->proximo; ultimo = p; p->proximo = NULL; cout << "Aluno excluído com sucesso !!!" << endl; getch(); } Excluindo elemento da memória.
  16. 16. ESTRUTURA DE DADOS – Prof. Thomás da Costa Novas opções de menu !!! 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 - ULTIMO ELEMENTO" << endl; cout << "0 - SAIR" << endl; cout << "Digite uma opção: "; }
  17. 17. ESTRUTURA DE DADOS – Prof. Thomás da Costa • LIFO – Last in, First Out. • Primeiro elemento entra no final da fila. • Aprimoramos o programa utilizado em lista para remover sempre o último elemento. • A estrutura aponta para o primeiro elemento da lista. Com isso mantemos a referência para o início da lista. • Possuímos uma referência para o último elemento da lista. Resumo PILHAS
  18. 18. Obrigado !!! ANHANGUERA – 2015.2

×