Casos de uso

Disponível somente no TrabalhosFeitos
  • Páginas : 8 (1761 palavras )
  • Download(s) : 0
  • Publicado : 21 de maio de 2012
Ler documento completo
Amostra do texto
'

$

´ ESTRUTURAS DE DADOS BASICAS EM JAVA
Jos´ de Siqueira e UFMG - ICEx - DCC 1o semestre de 2005

&

%

'

Estruturas de Dados B´sicas em Java a

$

O Tipo Abstrato de Dados Pilha
• O TAD pilha tem quase as mesmas opera¸oes c˜ apresentadas anteriormente: 1. empilha(o): insere o objeto o no topo da pilha. ıda: nenhuma. Entrada: objeto. Sa´ 2. desempilha(): retira o objeto notopo da pilha e o roetorna; ocorre erro se a pilha estiver vazia. Entrada: nenhuma. Sa´ ıda: objeto. 3. tamanho(): retorna o n´mero de objetos na u pilha. Entrada: nenhuma. Sa´ ıda: inteiro. 4. vazia(): Retorna um booleano indicando se a pilha est´ vazia. a Entrada: nenhuma. Sa´ ıda: booleano. 5. topo(): Retorna o objeto no topo da pilha, a sem retir´-lo; ocorre um erro se a pilha estiver vazia.ıda: objeto. Entrada: nenhuma. Sa´
&

Jos´ de Siqueira e

1

%

'

Estruturas de Dados B´sicas em Java a

$

Uma interface para pilhas em Java
• Em Java, j´ existe a classe para o TAD pilha: a java.util.Stack. e ıveis nesta classe, entre outros, • Os m´todos dispon´ s˜o: push(obj), pop(), equivalentes a a empilha(o) e desempilha() e peek(), equivalente a topo(), tamanho() evazia(). • Os m´todos pop() e peek() lan¸am a exce¸ao e c c˜ StackEmptyException se a pilha estiver vazia quando eles s˜o chamados. a a • Apesar de j´ existir esta classe em Java, aqui estamos interessados em aprender como projetar e implementar uma pilha e uma fila em Java. • A implementa¸ao de um TAD em Java envolve c˜ dois passos: 1. a defini¸ao de uma API (Application c˜ Programming Interface) quedescreve os nomes dos m´todos que o TAD oferece, como e a a eles s˜o declarados e como s˜o usados. 2. uma ou mais implementa¸oes concretas dos c˜ m´todos descritos na interface (API) e associada com o TAD.
&

Jos´ de Siqueira e

2

%

'

Estruturas de Dados B´sicas em Java a

$

public interface Pilha { /* retorna o n´mero de itens na pilha */ u public int tamanho(); /* retorna true sea pilha est´ vazia, false sen˜o */ a a public boolean vazia(); /*retorna, sem removˆ-lo, o item do topo da pilha; e lan¸a StackEmptyException se a pilha estiver vazia*/ c public Object topo() throws StackEmptyException; /* insere um item, passado em parˆmetro, no topo a da pilha */ public void empilha(Object element); /* remove e retorna o item no topo da pilha; lan¸a c StackEmptyException se apilha estiver vazia*/ public Object desempilha() throws StackEmptyException; } /* Exce¸oes lan¸adas quando se tenta usar as opera¸oes c˜ c c˜ em uma pilha vazia s˜o tratadas aqui*/ a public class StackEmptyException extends RuntimeException { public StackEmptyException (String erro) { super(erro); } }
&

Jos´ de Siqueira e

3

%

'

Estruturas de Dados B´sicas em Java a

$

Umaimplementa¸ao baseada em vetores c˜
• Nesta implementa¸ao baseada em vetores, como o c˜ vetor ´ alocado estaticamente, ao tentar empilhar e um objeto em uma pilha cheia, devemos lan¸ar c uma exce¸ao StackFullExcpetion. c˜ • Esta exce¸ao n˜o foi definida no TAD Pilha por c˜ a ser espec´ ıfica desta implementa¸ao. c˜
/* Implementa¸ao da interface Pilha usando um c˜ vetor de tamanho fixo. Uma exce¸ao ´lan¸ada ao c˜ e c tentar empilhar um objeto em uma pilha cheia. */ public class PilhaComVetor implements Pilha { /* Tamanho m´ximo fixo do vetor usado como a pilha */ public static final int CapacidadeMax = 1000; /* Capacidade da pilha */ private int Capacidade; /* Vetor usado como pilha */ private Object P[ ]; /* ´ ındice do elemento do topo da pilha */ private int topo = -1;
&

Jos´ de Siqueirae

4

%

'

Estruturas de Dados B´sicas em Java a

$

/* inicia a pilha para usar um vetor com tamanho m´ximo CapacidadeMax */ a public PilhaComVetor() { this(CapacidadeMax); } /* inicia a pilha para um arranjo com o tamanho fornecido; o parˆmetro ´ o tamanho do vetor */ a e public PilhaComVetor(int tam) { Capacidade = tam; P = new Object[Capacidade]; } public int tamanho() {...
tracking img