Slides: Prof. João Fabro UTFPR - Curitiba

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Estruturas de Dados Listas Prof. Rodrigo Rocha
Estrutura de Dados Pilha by Aquiles Burlamaqui. Definição Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de.
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Aula T10 – BCC202 Listas – Parte 2 Túlio Toffolo www. decom. ufop
Um programa em C Bibliotecas Variáveis globais
Estruturas de Dados Árvores Binárias
Listas encadeadas Prof. Rosana Palazon.
Algoritmos de manipulação de estruturas elementares de dados
Listas duplamente encadeadas
Programação II Estruturas de Dados
TADS – Tipos Abstratos de Dados
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
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.
Listas com Ponteiros Listas encadeadas Listas circulares.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Armazenamento de Dados em Arquivos
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Slides: Prof. João Fabro UTFPR - Curitiba
Armazenamento de Dados em Arquivos
Slides: Prof. SIMÃO Revisão: Prof. João Fabro
Fundamentos de Programação 1
Lista Encadeada Circular Lista Duplamente Encadeada
Listas Encadeadas.
Alocação Dinâmica de Memória
Prof.° Jean Daniel Henri Merlin Andreazza Estrutura de Dados
ALGORITMOS E ESTRUTURAS DE DADOS
exercícios listas encadeadas
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
Denise Guliato Faculdade de Computação – UFU
INTELIGÊNCIA ARTIFICIAL
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
Á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.
Listas lineares Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
Leandro Almeida  Parâmetros são utilizados em computação para possibilitar a construção de subprogramas genéricos.
Lista encadeada Representar um grupo de dados.
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.
ESTRUTURA DE DADOS Aula 10 – Listas Duplamente Encadeadas.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Prof. Alessandro Gonçalves
Comando de Seleção switch
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Estruturas de Dados Aula 10: Listas (parte 2) 07/05/2014.
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
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.
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.
Pilha dinâmica Prof.° Jean Daniel Henri Merlin Andreazza
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C”
Fundamentos de Programação 1 Slides 19 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Binários”.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
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.
Fundamentos de Programação 1 Slides 21 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Encadeada”.
Fundamentos de Programação 1 Slides 22 Prof.ª Fabiany e Prof. SIMÃO Linguagem C “Lista Duplamente Encadeada - Projeto com vários Arquivos”.
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”. 1.
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
Transcrição da apresentação:

Slides: Prof. João Fabro UTFPR - Curitiba Computação 2 Linguagem C “Pilhas e Filas com Alocação Dinâmica”. Slides: Prof. João Fabro UTFPR - Curitiba

O que são “Pilhas” e “Filas” Pilhas e Filas são estruturas de dados com alocação dinâmica: são Listas Encadeadas! Ao implementar mecanismos de inserção e remoção de elementos da Lista Encadeada, pode-se definir se a Lista comporta-se como uma Fila ou uma Pilha!

O que são “Pilhas” e “Filas” Fila: A inserção ocorre na última posição, e a remoção ocorre na primeira posição - o primeiro a entrar na fila é também o primeiro a sair! Pilha: Neste caso, tanto a inserção quanto a remoção de elementos ocorre sempre na primeira posição - o último a entrar na pilha é também o primeiro a sair! (Imagine de uma pilha de livros sobre a mesa, por exemplo!)

O que são “Pilhas” e “Filas” As duas estruturas de dados são implementadas com base na estrutura de Lista Encadeada apresentada na aula passada. A seguir é apresentado um exemplo de uma Pilha.

#include <stdio.h> #include <stdlib.h> struct Elemento { char nome [100]; struct Elemento* prox; }; struct Elemento* primeiro;//Ponteiro para o “topo” // da Pilha char menu (); void insere (); void mostra_todos(); void remove (); int main() { char escolha; primeiro = NULL; //Inicia a Pilha Vazia! for ( ; ; ) escolha = menu (); switch ( escolha ) case ‘i' : case ‘I' : { insere(); } break; case 'm' : case 'M' : { mostra_todos(); } break; case ‘r' : case ‘R' : { remove(); } break; case ‘t' : case ‘T' : { exit ( 0 ); } break; default : { printf ( "Opcao invalida. \n" ); } } printf ( "\n \n \n" ); system ( "Pause" ); return 0;

void insere () { system ( "cls" ); printf ( "\n \n \n" ); struct Elemento* novo; novo = malloc ( 1 * sizeof (struct Elemento) ); novo->proximo = primeiro; printf ( “Digite o Nome a inserir na Pilha: \n" ); fflush ( stdin ); gets ( novo->nome ); primeiro = novo; } void remove () { system ( "cls" ); printf ( "\n \n \n" ); struct Elemento *aux; if(primeiro != NULL) aux = primeiro; // aux aponta para o primeiro! primeiro = primeiro ->proximo; //primeiro aponta //para o “segundo” printf(“ Nome removido da Pilha: %s\n”, aux->nome); free(aux); //Libera a área de memória onde o nome estava } else printf(“Pilha Vazia!!!\n”);

void mostra_todos () { system ( "cls" ); printf ( "\n \n \n" ); struct Elemento *aux; aux = primeiro; while ( aux != NULL ) printf ("%s \n", aux->nome ); aux = aux->proximo; } char menu () { printf ("\n \n \n"); char opcao; printf ( "(I)nserir novo nome na pilha. \n" ); printf ( "(M)ostrar todos . \n" ); printf ( "(R)emover um nome da pilha. \n" ); printf ( "(T)erminar. \n" ); fflush ( stdin ); scanf ( "%c", &opcao ); return opcao; }