SlideShare uma empresa Scribd logo
PILHAS (STACKS)
Estrutura de Dados e Algoritmos
com Java
<loiane.training />
PILHAS (STACKS)
Introdução
13
Estrutura de Dados e
Algoritmos com Java
<loiane.training />
http://images.clipartpanda.com/stack-of-books-images-book-stack.gif
http://www.wikihow.com/images/8/8c/Set-up-a-Buffet-Step-6.jpg
31.3 32 33.7 34 33.1
[0] [1] [2] [3] [4] [5] [7][6]
Início
tamanho = 5
Vetor, Array, Lista
31.3
32
33.7
34
33.1
[0]
[1]
[2]
[3]
[4]
[5]
Início -> base da pilha
Pilha
31.3
32
33.7
34
33.1
[0]
[1]
[2]
[3]
[4]
[5]
Início -> base da pilha
Pilha
topo da pilha
31.3
32
33.7
[0]
[1]
[2]
Início -> base da pilha
Pilha
33.7
topo da pilha
empilhar (push)
31.3
32
33.7
[0]
[1]
[2]
Início -> base da pilha
Pilha
33.7
topo da pilha
desempilhar (pop)
LIFO
LIFO
Last In First Out
LIFO
Last In First Out
Último a entrar, primeiro a sair
PILHAS (STACKS): INTRODUÇÃO
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
➤ Verificar quantidade de elementos na pilha
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
➤ Verificar quantidade de elementos na pilha
➤ Empilhar elemento
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
➤ Verificar quantidade de elementos na pilha
➤ Empilhar elemento
➤ Verificar se pilha está vazia
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
➤ Verificar quantidade de elementos na pilha
➤ Empilhar elemento
➤ Verificar se pilha está vazia
➤ Espiar/Verificar elemento topo da pilha
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
➤ Verificar quantidade de elementos na pilha
➤ Empilhar elemento
➤ Verificar se pilha está vazia
➤ Espiar/Verificar elemento topo da pilha
➤ Desempilhar elemento da pilha
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
➤ Verificar quantidade de elementos na pilha
➤ Empilhar elemento
➤ Verificar se pilha está vazia
➤ Espiar/Verificar elemento topo da pilha
➤ Desempilhar elemento da pilha
➤ API Java Stack
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição
➤ Verificar quantidade de elementos na pilha
➤ Empilhar elemento
➤ Verificar se pilha está vazia
➤ Espiar/Verificar elemento topo da pilha
➤ Desempilhar elemento da pilha
➤ API Java Stack
➤ Exercícios
DIAGRAMA CLASSE PILHA
DIAGRAMA CLASSE PILHA
CLASSE PILHA
public class Pilha<T> {
private T[] elementos;
private int tamanho;
public Pilha(int capacidade) {
elementos = (T[]) new Object[capacidade];
tamanho = 0;
}
public int tamanho(){
return this.tamanho;
}
public String toString(){
//mesmo código que a classe Lista/Vetor
}
}
VAMOS REFATORAR?
CLASSE REFATORADA
public class Pilha<T> extends EstruturaEstatica<T>{
public Pilha(int capacidade) {
super(capacidade);
}
public Pilha() {
super();
}
}
TESTE
public class Aula13 {
public static void main(String[] args) {
Pilha<Integer> pilha = new Pilha<Integer>(5);
System.out.println(pilha.tamanho());
System.out.println(pilha);
}
}
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição ✅
➤ Verificar quantidade de elementos na pilha ✅
➤ Empilhar elemento
➤ Verificar se pilha está vazia
➤ Espiar/Verificar elemento topo da pilha
➤ Desempilhar elemento da pilha
➤ API Java Stack
➤ Exercícios
PILHAS (STACKS)
Empilhar elemento
14
Estrutura de Dados e
Algoritmos com Java
<loiane.training />
LIFO
Last In First Out
Último a entrar, primeiro a sair
31.3
32
33.7
[0]
[1]
[2]
Início -> base da pilha
Pilha
33.7
topo da pilha
empilhar (push)
EMPILHAR (ADICIONAR ELEMENTO)
public void empilha(T elemento) {
aumentaCapacidade();
elementos[tamanho] = elemento;
tamanho++;
//elementos[tamanho++] = elemento;
}
EMPILHAR (ADICIONAR ELEMENTO) - REUSANDO CÓDIGO
public void empilha(T elemento) {
super.adiciona(elemento);
}
TESTE
Pilha<Integer> pilha = new Pilha<Integer>(5);
for (int i=1;i<10; i++){
pilha.empilha(i);
}
System.out.println(pilha.tamanho());
System.out.println(pilha);
STACK OVERFLOW EXCEPTION
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição ✅
➤ Verificar quantidade de elementos na pilha ✅
➤ Empilhar elemento ✅
➤ Verificar se pilha está vazia
➤ Espiar/Verificar elemento topo da pilha
➤ Desempilhar elemento da pilha
➤ API Java Stack
➤ Exercícios
PILHAS (STACKS)
Verificar pilha vazia
15
Estrutura de Dados e
Algoritmos com Java
<loiane.training />
VERIFICAR PILHA VAZIA
public boolean estaVazia(){
return tamanho == 0;
}
TESTE
Pilha<Integer> pilha = new Pilha<Integer>(5);
System.out.println(pilha.estaVazia());
for (int i=1;i<10; i++){
pilha.empilha(i);
}
System.out.println(pilha.estaVazia());
System.out.println(pilha.tamanho());
System.out.println(pilha);
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição ✅
➤ Verificar quantidade de elementos na pilha ✅
➤ Empilhar elemento ✅
➤ Verificar se pilha está vazia ✅
➤ Espiar/Verificar elemento topo da pilha
➤ Desempilhar elemento da pilha
➤ API Java Stack
➤ Exercícios
PILHAS (STACKS)
Espiar topo da pilha
16
Estrutura de Dados e
Algoritmos com Java
<loiane.training />
31.3
32
33.7
34
33.1
[0]
[1]
[2]
[3]
[4]
[5]
Início -> base da pilha
Pilha
topo da pilha
tamanho é 5
ESPIAR TOPO DA PILHA (PEEK)
public T topo(){
if (this.estaVazia()){
return null;
}
return elementos[tamanho-1];
}
TESTE
Pilha<Integer> pilha = new Pilha<Integer>(5);
System.out.println(pilha.estaVazia());
for (int i=1;i<10; i++){
pilha.empilha(i);
}
System.out.println(pilha.estaVazia());
System.out.println(pilha.tamanho());
System.out.println(pilha);
System.out.println(pilha.topo());
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição ✅
➤ Verificar quantidade de elementos na pilha ✅
➤ Empilhar elemento ✅
➤ Verificar se pilha está vazia ✅
➤ Espiar/Verificar elemento topo da pilha ✅
➤ Desempilhar elemento da pilha
➤ API Java Stack
➤ Exercícios
PILHAS (STACKS)
Desempilhar elemento
17
Estrutura de Dados e
Algoritmos com Java
<loiane.training />
LIFO
Last In First Out
Último a entrar, primeiro a sair
31.3
32
33.7
[0]
[1]
[2]
Início -> base da pilha
Pilha
33.7
topo da pilha
empilhar (push)
31.3
32
33.7
[0]
[1]
[2]
Início -> base da pilha
Pilha
33.7
topo da pilha
tamanho = 4
[3]
31.3
32
33.7
[0]
[1]
[2]
Início -> base da pilha
Pilha
33.7
desempilhar (pop)
topo da pilha
tamanho = 4
[3]
31.3
32
33.7
[0]
[1]
[2]
Início -> base da pilha
Pilha
33.7
desempilhar (pop)
topo da pilha
tamanho = 3
REMOVER ELEMENTO DA PILHA
public T desempilha(){
if (this.estaVazia()){
return null;
}
return elementos[--tamanho];
}
TESTE
Pilha<Integer> pilha = new Pilha<Integer>();
System.out.println(pilha.estaVazia());
for (int i=1;i<10; i++){
pilha.empilha(i);
}
System.out.println(pilha.estaVazia());
System.out.println(pilha.tamanho());
System.out.println(pilha);
System.out.println(pilha.topo());
int elemento = pilha.desempilha();
System.out.println(elemento);
System.out.println(pilha.tamanho());
System.out.println(pilha);
System.out.println(pilha.topo());
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição ✅
➤ Verificar quantidade de elementos na pilha ✅
➤ Empilhar elemento ✅
➤ Verificar se pilha está vazia ✅
➤ Espiar/Verificar elemento topo da pilha ✅
➤ Desempilhar elemento da pilha ✅
➤ API Java Stack
➤ Exercícios
PILHAS (STACKS)
API Java Stack
18
Estrutura de Dados e
Algoritmos com Java
<loiane.training />
CLASSE STACK - API JAVA
Stack<Integer> pilha = new Stack<Integer>();
System.out.println(pilha.isEmpty());
for (int i=1;i<10; i++){
pilha.push(i);
}
System.out.println(pilha.isEmpty());
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
int elemento = pilha.pop();
System.out.println(elemento);
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
CLASSE STACK - API JAVA
Stack<Integer> pilha = new Stack<Integer>();
System.out.println(pilha.isEmpty());
for (int i=1;i<10; i++){
pilha.push(i);
}
System.out.println(pilha.isEmpty());
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
int elemento = pilha.pop();
System.out.println(elemento);
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
estaVazia
CLASSE STACK - API JAVA
Stack<Integer> pilha = new Stack<Integer>();
System.out.println(pilha.isEmpty());
for (int i=1;i<10; i++){
pilha.push(i);
}
System.out.println(pilha.isEmpty());
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
int elemento = pilha.pop();
System.out.println(elemento);
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
empilha
CLASSE STACK - API JAVA
Stack<Integer> pilha = new Stack<Integer>();
System.out.println(pilha.isEmpty());
for (int i=1;i<10; i++){
pilha.push(i);
}
System.out.println(pilha.isEmpty());
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
int elemento = pilha.pop();
System.out.println(elemento);
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
tamanho
CLASSE STACK - API JAVA
Stack<Integer> pilha = new Stack<Integer>();
System.out.println(pilha.isEmpty());
for (int i=1;i<10; i++){
pilha.push(i);
}
System.out.println(pilha.isEmpty());
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
int elemento = pilha.pop();
System.out.println(elemento);
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
topo
CLASSE STACK - API JAVA
Stack<Integer> pilha = new Stack<Integer>();
System.out.println(pilha.isEmpty());
for (int i=1;i<10; i++){
pilha.push(i);
}
System.out.println(pilha.isEmpty());
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
int elemento = pilha.pop();
System.out.println(elemento);
System.out.println(pilha.size());
System.out.println(pilha);
System.out.println(pilha.peek());
desempilha
PILHAS (STACKS): INTRODUÇÃO
➤ Classe Pilha
➤ Definição ✅
➤ Verificar quantidade de elementos na pilha ✅
➤ Empilhar elemento ✅
➤ Verificar se pilha está vazia ✅
➤ Espiar/Verificar elemento topo da pilha ✅
➤ Desempilhar elemento da pilha ✅
➤ API Java Stack ✅
➤ Exercícios
EXERCÍCIOS
http://goo.gl/Ad5lAe
Download código fonte e certificado
Cadastro em:
http://loiane.training
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
http://loiane.com
facebook.com/loianegroner
twitter.com/loiane
https://github.com/loiane
youtube.com/loianegroner
http://loiane.training

Mais conteúdo relacionado

PDF
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
PDF
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
PPTX
Strings in Java
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade
PPTX
Java literals
PDF
Python Tutorial For Beginners | Python Crash Course - Python Programming Lang...
PPTX
Java 11 to 17 : What's new !?
PPT
Python Dictionaries and Sets
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Strings in Java
[Curso Java Basico - Orientacao a Objetos] Aula 35: Recursividade
Java literals
Python Tutorial For Beginners | Python Crash Course - Python Programming Lang...
Java 11 to 17 : What's new !?
Python Dictionaries and Sets

Mais procurados (20)

PDF
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
PPTX
Library functions in c++
PDF
Collections Api - Java
PPT
Java Arrays
PPSX
Collections - Maps
PPSX
Strings in Java
PPTX
collection framework in java
PDF
Strings in java
PDF
Java String
PDF
[Curso Java Basico - Exceptions] Aula 47: try, catch
PPT
Core java concepts
PPT
CLASSES AND OBJECTS IN C++ +2 COMPUTER SCIENCE
PPT
String classes and its methods.20
PPTX
USE OF PRINT IN PYTHON PART 2
PPTX
Introduction to Python programming Language
PPTX
Formation python
PDF
java-thread
PPTX
Java String Handling
PPT
Array in Java
PDF
Estruturas de Dados - Pilhas (Stack)
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Library functions in c++
Collections Api - Java
Java Arrays
Collections - Maps
Strings in Java
collection framework in java
Strings in java
Java String
[Curso Java Basico - Exceptions] Aula 47: try, catch
Core java concepts
CLASSES AND OBJECTS IN C++ +2 COMPUTER SCIENCE
String classes and its methods.20
USE OF PRINT IN PYTHON PART 2
Introduction to Python programming Language
Formation python
java-thread
Java String Handling
Array in Java
Estruturas de Dados - Pilhas (Stack)
Anúncio

Semelhante a Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack) (20)

PDF
Estrutura de Dados e Algoritmos com Java #19-25: Filas (Queue)
PDF
Estrutura de Dados - PILHAS
PDF
Pilha e filas
PDF
Pilha e Fila Estática
PPTX
PDF
Pilhas java
ODP
Aula 01 -_pilhas_e_filas_com_vetores-oop
PDF
Pged 05
KEY
Python 04
PDF
Groovy na plataforma Java
PPT
Pilhas e Filas.ppt
PPTX
Curso java 01 - molhando os pés com java
PDF
Maonamassa Pga
PPTX
Coleções do c
PPTX
Coleções do c
PDF
Aprendendo objective c - parte 1
PDF
Nossa experiência com TDD
PPTX
Maratona de Programação com STL
PPTX
Introducao_SQLiteOnline.pptxapresntação ppt
PPT
55 New Things in Java 7 - Brazil
Estrutura de Dados e Algoritmos com Java #19-25: Filas (Queue)
Estrutura de Dados - PILHAS
Pilha e filas
Pilha e Fila Estática
Pilhas java
Aula 01 -_pilhas_e_filas_com_vetores-oop
Pged 05
Python 04
Groovy na plataforma Java
Pilhas e Filas.ppt
Curso java 01 - molhando os pés com java
Maonamassa Pga
Coleções do c
Coleções do c
Aprendendo objective c - parte 1
Nossa experiência com TDD
Maratona de Programação com STL
Introducao_SQLiteOnline.pptxapresntação ppt
55 New Things in Java 7 - Brazil
Anúncio

Último (19)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Apple Pippin Uma breve introdução. - David Glotz
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Processos na gestão de transportes, TM100 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula04-Academia Heri- Tecnologia Geral 2025
COBITxITIL-Entenda as diferença em uso governança TI
Aula 18 - Manipulacao De Arquivos python
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx

Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)