SlideShare uma empresa Scribd logo
1 de 22
Estruturas de Dados 
Estruturas de Dados básicas 
utilizando Vetores 
- Introdução 
- Pilhas usando Vetores 
- Filas usando Vetores
Estruturas de Dados - Definição 
Estruturas de Dados é a disciplina que estuda as 
técnicas computacionais para a organização e 
manipulação eficiente de quaisquer quantidades 
de informação.
Estruturas de Dados - Aspectos 
● Em um projeto de software, 2 aspectos devem ser 
considerados: 
● de que forma estão organizados os dados - qual a sua estrutura; 
● quais procedimentos atuam sobre estes dados - que operações 
podem ser realizadas sobre eles. 
● Ao estudar estruturas de dados teremos sempre este par: 
● um conjunto estruturado de informações: 
● uma classe de objetos ou um tipo de dados; 
● um conjunto definido de operações sobre estes dados: 
● um conjunto de métodos ou funções.
24 
89 
12 
4 
55 
20 
Pilhas 
A Pilha é uma estrutura de dados cujo 
funcionamento é inspirado no de uma 
pilha “natural”.
89 
12 
4 
55 
20 -01234 
1 
24 
5 
Pilha 
cheia 
Pilha 
vazia 
Pilhas usando Vetores 
● Vetores possuem um espaço 
limitado para armazenar dados; 
● necessitamos definir um 
espaço grande o suficiente 
para a nossa pilha; 
● necessitamos de um indicador 
de qual elemento do vetor é o 
atual topo da pilha.
Modelagem da Pilha 
● Aspecto Estrutural: 
● necessitamos de um vetor para armazenar as informações; 
● necessitamos de um indicador da posição atual do topo da pilha; 
● necessitamos de uma constante que nos diga quando a pilha 
está cheia e duas outras para codificar erros. 
● Pseudo-código: 
constantes MAXPILHA = 100; 
classe Pilha { 
T m_dados[MAXPILHA]; 
inteiro topo; 
};
Modelagem da Pilha 
● Aspecto Funcional: 
● colocar e retirar dados da pilha; 
● testar se a pilha está vazia ou cheia; 
● Inicialização. 
● Colocar e retirar dados da pilha: 
● Empilha(dado) 
● Desempilha(dado) 
● Topo 
● Testar se a pilha está vazia ou cheia: 
● PilhaCheia 
● PilhaVazia 
● Inicializar ou limpar: 
● InicializaPilha
Algoritmo InicializaPilha 
Nulo inicializaPilha() 
início 
topo <- -1; 
fim;
Algoritmo PilhaCheia 
Booleano MÉTODO pilhaCheia() 
início 
SE (topo = MAXPILHA - 1) ENTÃO 
RETORNE(Verdadeiro) 
SENÃO 
RETORNE(Falso); 
fim;
Algoritmo PilhaVazia 
Booleano MÉTODO pilhaVazia() 
início 
SE (topo = -1) ENTÃO 
RETORNE(Verdadeiro) 
SENÃO 
RETORNE(Falso); 
fim;
Algoritmo Empilha 
Inteiro MÉTODO empilha(T dado) 
início 
SE (pilhaCheia) ENTÃO 
JogeExceção(ERROPILHACHEIA); 
SENÃO 
topo <- topo + 1 
dados[topo] <- dado; 
RETORNE(topo); 
FIM SE 
fim;
Algoritmo Desempilha 
T MÉTODO desempilha() 
início 
SE (pilhaVazia) ENTÃO 
JogeExceção(ERROPILHAVAZIA); 
SENÃO 
topo <- topo - 1; 
RETORNE(dados[topo+1]); 
FIM SE 
fim;
Algoritmo Topo 
Inteiro MÉTODO topo() 
início 
SE (pilhaVazia) ENTÃO 
JogeExceção(ERROPILHAVAZIA); 
SENÃO 
RETORNE(dados[topo]); 
FIM SE 
fim;
Modelagem da Pilha com Vetor - Trabalho 1 
● Implemente uma classe Pilha todas as operações vistas; 
● Implemente a pilha usando Templates 
● Implemente a pilha com um numero de elementos variável 
definido na instanciação 
● Use as melhores práticas de orientação a objetos 
● Documente todas as classes, métodos e atributos. 
● Aplique os testes unitários disponíveis no moodle da disciplina 
para validar sua estrutura de dados.
• 
Filas usando Vetores 
● A Fila é uma estrutura de dados que 
simula uma fila da vida real (ou quase). 
● Possui duas operações básicas: 
● incluir no fim da fila; 
● retirar do começo da fila; 
● chamada de Estrutura-FIFO: 
First-In, First-Out - O primeiro que entrou é o 
primeiro a sair… 
Fila
Filas 
Fila 
Filas 
● É uma estrutura de dados importantíssima 
para: 
● gerência de dados/processos por ordem cronológica: 
● Fila de impressão em uma impressora de rede; 
● Fila de pedidos de uma expedição ou tele-entrega. 
● simulação de processos seqüenciais: 
● chão de fábrica: fila de camisetas a serem estampadas; 
● comércio: simulação de fluxo de um caixa de supermercado; 
● tráfego: simulação de um cruzamento com um semáforo.
89 
12 
4 
55 
20 -01234 
1 
24 
5 
Fila 
cheia 
Fila 
vazia 
Posição do 
Início da fila último 
Filas usando Vetores 
● Vetores possuem um espaço 
limitado para armazenar dados; 
● necessitamos definir um espaço 
grande o suficiente para a nossa fila; 
● necessitamos de um indicador de 
qual elemento do vetor é o atual fim 
da fila (último); 
● incluímos sempre no fim.
24 
89 
24 
12 
89 
12 
4 
55 
4 
55 
20 45 
20 
Início da fila 
Posição do 
último 
Algoritmo Retira 
● Procedimento: 
● testamos se há elementos; 
● decrementamos o fim da fila 
(último); 
● salvamos o primeiro elemento em 
variável auxiliar; 
● empurramos tudo para a frente. 
● Parâmetros: 
● fila (global).
Modelagem da Fila com Vetor 
● Aspecto Funcional: 
● colocar e retirar dados da fila; 
● testar se a fila está vazia ou cheia; 
● Inicialização. 
● Colocar e retirar dados da fila: 
● Inclui(dado) 
● Retira 
● Último 
● Testar se a fila está vazia ou cheia: 
● FilaCheia 
● FilaVazia 
● Inicializar ou limpar: 
● InicializaFila
Modelagem da Fila com Vetor - Exercício 
● Inserir e retirar dados da fila: elabore 
um algoritmo para retirar um elemento 
de uma fila com vetor: 
● utilize a mesma filosofia definida na 
implementação da pilha; 
● utilize um laço para percorrer o vetor; 
● lembre-se de testar antes se há elementos; 
● lembre-se de que se há só um elemento, a 
fila ficará vazia.
Modelagem da Fila com Vetor - Trabalho 2 
● Implemente uma classe Fila todas as operações vistas; 
● Implemente a fila usando Templates 
● Implemente a fila com um numero de elementos variável 
definido na instanciação 
● Use as melhores práticas de orientação a objetos 
● Documente todas as classes, métodos e atributos. 
● Aplique os testes unitários disponíveis no moodle da disciplina 
para validar sua estrutura de dados.
Atribuição-Uso Não-Comercial-Compartilhamento pela Licença 2.5 Brasil 
Você pode: 
- copiar, distribuir, exibir e executar a obra 
- criar obras derivadas 
Sob as seguintes condições: 
Atribuição — Você deve dar crédito ao autor original, da forma especificada pelo autor ou 
licenciante. 
Uso Não-Comercial — Você não pode utilizar esta obra com finalidades comerciais. 
Compartilhamento pela mesma Licença — Se você alterar, transformar, ou criar outra obra 
com base nesta, você somente poderá distribuir a obra resultante sob uma licença 
idêntica a esta. 
Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/ 
2.5/br/ ou mande uma carta para Creative Commons, 171 Second Street, Suite 300, 
San Francisco, California, 94105, USA.

Mais conteúdo relacionado

Destaque (19)

Criando módulos em java
Criando módulos em javaCriando módulos em java
Criando módulos em java
 
Estruturação e modulação de um programa
Estruturação e modulação de um programaEstruturação e modulação de um programa
Estruturação e modulação de um programa
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 
Listas Lineares - Parte 2
Listas Lineares - Parte 2Listas Lineares - Parte 2
Listas Lineares - Parte 2
 
Chrome OS
Chrome OSChrome OS
Chrome OS
 
Apostila Chrome
Apostila ChromeApostila Chrome
Apostila Chrome
 
6.queue
6.queue6.queue
6.queue
 
Listas Lineares - Parte 1
Listas Lineares - Parte 1Listas Lineares - Parte 1
Listas Lineares - Parte 1
 
Aula01 - estrutura de dados
Aula01 - estrutura de dadosAula01 - estrutura de dados
Aula01 - estrutura de dados
 
Lecture 5 data structures and algorithms
Lecture 5 data structures and algorithmsLecture 5 data structures and algorithms
Lecture 5 data structures and algorithms
 
Mca ii dfs u-3 linklist,stack,queue
Mca ii dfs u-3 linklist,stack,queueMca ii dfs u-3 linklist,stack,queue
Mca ii dfs u-3 linklist,stack,queue
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Data structure and algorithm.(dsa)
Data structure and algorithm.(dsa)Data structure and algorithm.(dsa)
Data structure and algorithm.(dsa)
 
Data Structure -List Stack Queue
Data Structure -List Stack QueueData Structure -List Stack Queue
Data Structure -List Stack Queue
 
Estruturas de dados
Estruturas de dadosEstruturas de dados
Estruturas de dados
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Aula básica de internet
Aula básica de internetAula básica de internet
Aula básica de internet
 
Data structures and algorithms
Data structures and algorithmsData structures and algorithms
Data structures and algorithms
 

Semelhante a Aula 01 -_pilhas_e_filas_com_vetores-oop

Aula_01_-_Pilhas_e_Filas_com_Vetores.ppt
Aula_01_-_Pilhas_e_Filas_com_Vetores.pptAula_01_-_Pilhas_e_Filas_com_Vetores.ppt
Aula_01_-_Pilhas_e_Filas_com_Vetores.pptssuserd654cb1
 
Aula_05_-_Listas_Duplamente_Encadeadas_opp.ppt
Aula_05_-_Listas_Duplamente_Encadeadas_opp.pptAula_05_-_Listas_Duplamente_Encadeadas_opp.ppt
Aula_05_-_Listas_Duplamente_Encadeadas_opp.pptssuserd654cb1
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade IIIJoão Lourenço
 
Aula_05_-_Listas_Duplamente_Encadeadas.ppt
Aula_05_-_Listas_Duplamente_Encadeadas.pptAula_05_-_Listas_Duplamente_Encadeadas.ppt
Aula_05_-_Listas_Duplamente_Encadeadas.pptssuserd654cb1
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com javaMaurício Linhares
 
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)Loiane Groner
 
Programação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte IProgramação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte IFabio Moura Pereira
 

Semelhante a Aula 01 -_pilhas_e_filas_com_vetores-oop (20)

Aula_01_-_Pilhas_e_Filas_com_Vetores.ppt
Aula_01_-_Pilhas_e_Filas_com_Vetores.pptAula_01_-_Pilhas_e_Filas_com_Vetores.ppt
Aula_01_-_Pilhas_e_Filas_com_Vetores.ppt
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Aula_05_-_Listas_Duplamente_Encadeadas_opp.ppt
Aula_05_-_Listas_Duplamente_Encadeadas_opp.pptAula_05_-_Listas_Duplamente_Encadeadas_opp.ppt
Aula_05_-_Listas_Duplamente_Encadeadas_opp.ppt
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
Aula_05_-_Listas_Duplamente_Encadeadas.ppt
Aula_05_-_Listas_Duplamente_Encadeadas.pptAula_05_-_Listas_Duplamente_Encadeadas.ppt
Aula_05_-_Listas_Duplamente_Encadeadas.ppt
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
 
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
 
UML - parte 1
UML - parte 1UML - parte 1
UML - parte 1
 
Aula JPA
Aula JPAAula JPA
Aula JPA
 
Programação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte IProgramação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte I
 
Aula 7 pc - estrutura
Aula 7   pc - estruturaAula 7   pc - estrutura
Aula 7 pc - estrutura
 
Pged 06
Pged 06Pged 06
Pged 06
 
Python 04
Python 04Python 04
Python 04
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Java8
Java8Java8
Java8
 

Último

Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdLeonardoDeOliveiraLu2
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa paraAndreaPassosMascaren
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Centro Jacques Delors
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Centro Jacques Delors
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticash5kpmr7w7
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasrfmbrandao
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfJuliana Barbosa
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...marcelafinkler
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVlenapinto
 

Último (20)

Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 

Aula 01 -_pilhas_e_filas_com_vetores-oop

  • 1. Estruturas de Dados Estruturas de Dados básicas utilizando Vetores - Introdução - Pilhas usando Vetores - Filas usando Vetores
  • 2. Estruturas de Dados - Definição Estruturas de Dados é a disciplina que estuda as técnicas computacionais para a organização e manipulação eficiente de quaisquer quantidades de informação.
  • 3. Estruturas de Dados - Aspectos ● Em um projeto de software, 2 aspectos devem ser considerados: ● de que forma estão organizados os dados - qual a sua estrutura; ● quais procedimentos atuam sobre estes dados - que operações podem ser realizadas sobre eles. ● Ao estudar estruturas de dados teremos sempre este par: ● um conjunto estruturado de informações: ● uma classe de objetos ou um tipo de dados; ● um conjunto definido de operações sobre estes dados: ● um conjunto de métodos ou funções.
  • 4. 24 89 12 4 55 20 Pilhas A Pilha é uma estrutura de dados cujo funcionamento é inspirado no de uma pilha “natural”.
  • 5. 89 12 4 55 20 -01234 1 24 5 Pilha cheia Pilha vazia Pilhas usando Vetores ● Vetores possuem um espaço limitado para armazenar dados; ● necessitamos definir um espaço grande o suficiente para a nossa pilha; ● necessitamos de um indicador de qual elemento do vetor é o atual topo da pilha.
  • 6. Modelagem da Pilha ● Aspecto Estrutural: ● necessitamos de um vetor para armazenar as informações; ● necessitamos de um indicador da posição atual do topo da pilha; ● necessitamos de uma constante que nos diga quando a pilha está cheia e duas outras para codificar erros. ● Pseudo-código: constantes MAXPILHA = 100; classe Pilha { T m_dados[MAXPILHA]; inteiro topo; };
  • 7. Modelagem da Pilha ● Aspecto Funcional: ● colocar e retirar dados da pilha; ● testar se a pilha está vazia ou cheia; ● Inicialização. ● Colocar e retirar dados da pilha: ● Empilha(dado) ● Desempilha(dado) ● Topo ● Testar se a pilha está vazia ou cheia: ● PilhaCheia ● PilhaVazia ● Inicializar ou limpar: ● InicializaPilha
  • 8. Algoritmo InicializaPilha Nulo inicializaPilha() início topo <- -1; fim;
  • 9. Algoritmo PilhaCheia Booleano MÉTODO pilhaCheia() início SE (topo = MAXPILHA - 1) ENTÃO RETORNE(Verdadeiro) SENÃO RETORNE(Falso); fim;
  • 10. Algoritmo PilhaVazia Booleano MÉTODO pilhaVazia() início SE (topo = -1) ENTÃO RETORNE(Verdadeiro) SENÃO RETORNE(Falso); fim;
  • 11. Algoritmo Empilha Inteiro MÉTODO empilha(T dado) início SE (pilhaCheia) ENTÃO JogeExceção(ERROPILHACHEIA); SENÃO topo <- topo + 1 dados[topo] <- dado; RETORNE(topo); FIM SE fim;
  • 12. Algoritmo Desempilha T MÉTODO desempilha() início SE (pilhaVazia) ENTÃO JogeExceção(ERROPILHAVAZIA); SENÃO topo <- topo - 1; RETORNE(dados[topo+1]); FIM SE fim;
  • 13. Algoritmo Topo Inteiro MÉTODO topo() início SE (pilhaVazia) ENTÃO JogeExceção(ERROPILHAVAZIA); SENÃO RETORNE(dados[topo]); FIM SE fim;
  • 14. Modelagem da Pilha com Vetor - Trabalho 1 ● Implemente uma classe Pilha todas as operações vistas; ● Implemente a pilha usando Templates ● Implemente a pilha com um numero de elementos variável definido na instanciação ● Use as melhores práticas de orientação a objetos ● Documente todas as classes, métodos e atributos. ● Aplique os testes unitários disponíveis no moodle da disciplina para validar sua estrutura de dados.
  • 15. • Filas usando Vetores ● A Fila é uma estrutura de dados que simula uma fila da vida real (ou quase). ● Possui duas operações básicas: ● incluir no fim da fila; ● retirar do começo da fila; ● chamada de Estrutura-FIFO: First-In, First-Out - O primeiro que entrou é o primeiro a sair… Fila
  • 16. Filas Fila Filas ● É uma estrutura de dados importantíssima para: ● gerência de dados/processos por ordem cronológica: ● Fila de impressão em uma impressora de rede; ● Fila de pedidos de uma expedição ou tele-entrega. ● simulação de processos seqüenciais: ● chão de fábrica: fila de camisetas a serem estampadas; ● comércio: simulação de fluxo de um caixa de supermercado; ● tráfego: simulação de um cruzamento com um semáforo.
  • 17. 89 12 4 55 20 -01234 1 24 5 Fila cheia Fila vazia Posição do Início da fila último Filas usando Vetores ● Vetores possuem um espaço limitado para armazenar dados; ● necessitamos definir um espaço grande o suficiente para a nossa fila; ● necessitamos de um indicador de qual elemento do vetor é o atual fim da fila (último); ● incluímos sempre no fim.
  • 18. 24 89 24 12 89 12 4 55 4 55 20 45 20 Início da fila Posição do último Algoritmo Retira ● Procedimento: ● testamos se há elementos; ● decrementamos o fim da fila (último); ● salvamos o primeiro elemento em variável auxiliar; ● empurramos tudo para a frente. ● Parâmetros: ● fila (global).
  • 19. Modelagem da Fila com Vetor ● Aspecto Funcional: ● colocar e retirar dados da fila; ● testar se a fila está vazia ou cheia; ● Inicialização. ● Colocar e retirar dados da fila: ● Inclui(dado) ● Retira ● Último ● Testar se a fila está vazia ou cheia: ● FilaCheia ● FilaVazia ● Inicializar ou limpar: ● InicializaFila
  • 20. Modelagem da Fila com Vetor - Exercício ● Inserir e retirar dados da fila: elabore um algoritmo para retirar um elemento de uma fila com vetor: ● utilize a mesma filosofia definida na implementação da pilha; ● utilize um laço para percorrer o vetor; ● lembre-se de testar antes se há elementos; ● lembre-se de que se há só um elemento, a fila ficará vazia.
  • 21. Modelagem da Fila com Vetor - Trabalho 2 ● Implemente uma classe Fila todas as operações vistas; ● Implemente a fila usando Templates ● Implemente a fila com um numero de elementos variável definido na instanciação ● Use as melhores práticas de orientação a objetos ● Documente todas as classes, métodos e atributos. ● Aplique os testes unitários disponíveis no moodle da disciplina para validar sua estrutura de dados.
  • 22. Atribuição-Uso Não-Comercial-Compartilhamento pela Licença 2.5 Brasil Você pode: - copiar, distribuir, exibir e executar a obra - criar obras derivadas Sob as seguintes condições: Atribuição — Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Uso Não-Comercial — Você não pode utilizar esta obra com finalidades comerciais. Compartilhamento pela mesma Licença — Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/ 2.5/br/ ou mande uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.