Aula de Exercícios
19/02/2013
Monitor: Túlio Figueiredo de Castro
Email: Tulio.figueiredo@gmail.com
1. S
UPONHAQUEUMAPILHAS
INICIALMENTEVAZIAREALIZOUUMTOTAL25
OPERAÇÕESPUSH
,
12
OPERAÇÕESTOPE
10
OPERAÇÕESPOPEMUMADETERMINADAORDEM. 3
OPERAÇÕESPOP RETORNARAMS
TACKU
NDERFLOWE
XCEPTION(
EXCEÇÃO DE PILHA VAZIA). Q
UAL É O TAMANHOATUALDAPILHAS?
2
1. S
UPONHAQUEUMAPILHAS
INICIALMENTEVAZIAREALIZOUUMTOTAL25
OPERAÇÕESPUSH
,
12
OPERAÇÕESTOPE
10
OPERAÇÕESPOPEMUMADETERMINADAORDEM. 3
OPERAÇÕESPOP RETORNARAMS
TACKU
NDERFLOWE
XCEPTION(
EXCEÇÃO DE PILHA VAZIA). Q
UAL É O TAMANHOATUALDAPILHAS?
S inicialmente vazia
1. S
UPONHAQUEUMAPILHAS
INICIALMENTEVAZIAREALIZOUUMTOTAL25
OPERAÇÕESPUSH
,
12
OPERAÇÕESTOPE
10
OPERAÇÕESPOPEMUMADETERMINADAORDEM. 3
OPERAÇÕESPOP RETORNARAMS
TACKU
NDERFLOWE
XCEPTION(
EXCEÇÃO DE PILHA VAZIA). Q
UAL É O TAMANHOATUALDAPILHAS?
S inicialmente vazia
25 push
1. S
UPONHAQUEUMAPILHAS
INICIALMENTEVAZIAREALIZOUUMTOTAL25
OPERAÇÕESPUSH
,
12
OPERAÇÕESTOPE
10
OPERAÇÕESPOPEMUMADETERMINADAORDEM. 3
OPERAÇÕESPOP RETORNARAMS
TACKU
NDERFLOWE
XCEPTION(
EXCEÇÃO DE PILHA VAZIA). Q
UAL É O TAMANHOATUALDAPILHAS?
S inicialmente vazia
25 push
12 top
1. S
UPONHAQUEUMAPILHAS
INICIALMENTEVAZIAREALIZOUUMTOTAL25
OPERAÇÕESPUSH
,
12
OPERAÇÕESTOPE
10
OPERAÇÕESPOPEMUMADETERMINADAORDEM. 3
OPERAÇÕESPOP RETORNARAMS
TACKU
NDERFLOWE
XCEPTION(
EXCEÇÃO DE PILHA VAZIA). Q
UAL É O TAMANHOATUALDAPILHAS?
S inicialmente vazia
25 push
12 top
4
1. S
UPONHAQUEUMAPILHAS
INICIALMENTEVAZIAREALIZOUUMTOTAL25
OPERAÇÕESPUSH
,
12
OPERAÇÕESTOPE
10
OPERAÇÕESPOPEMUMADETERMINADAORDEM. 3
OPERAÇÕESPOP RETORNARAMS
TACKU
NDERFLOWE
XCEPTION(
EXCEÇÃO DE PILHA VAZIA). Q
UAL É O TAMANHOATUALDAPILHAS?
S inicialmente vazia
25 push
12 top
10 pop (3 voltam exceção de pilha vazia)
Se 3 pop’s voltaram 3 exceções então eles foram
invocados na pilha vazia. Assim 7 pop’s foram
executados com sucesso e restam 18 elementos na
pilha S;
2. C
ONSIDERE O SEGUINTE CÓDIGO DE UMA PILHA GENÉRICA. I
MPLEMENTE USANDO RECURSÃO(
NO PRÓPRIOMÉTODO OUEM ALGUMMÉTODO AUXILIAR)
UMMÉTODO PARAREMOVER TODOS OS
OSELEMENTOSDEUMAPILHA
(
RESETARAPILHA).
public class StackImpl<T> implements Stack<T> {
private T[] array;
private int top;
//metodos todos implementados
}
REMOVER TODOS OS OSELEMENTOSDEUMAPILHA
(
RESETARAPILHA).
public void reset(){
reset(this);
}
public class StackImpl<T> implements Stack<T> {
private T[] array;
private int top;
//metodos todos implementados
}
2. C
ONSIDERE O SEGUINTE CÓDIGO DE UMA PILHA GENÉRICA. I
MPLEMENTE USANDO RECURSÃO(
NO PRÓPRIOMÉTODO OUEM ALGUMMÉTODO AUXILIAR)
UMMÉTODO PARAREMOVER TODOS OS
OSELEMENTOSDEUMAPILHA
(
RESETARAPILHA).
public void reset(){
reset(this);
}
public void reset(StackImpl<T> s){
if(!s.isEmpty()){
public class StackImpl<T> implements Stack<T> {
private T[] array;
private int top;
//metodos todos implementados
}
6
3. D
ESCREVAASAÍDADASSEGUINTESOPERAÇÕESDEUMAFILA:
ENQUEUE(5),
ENQUEUE(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
5
3
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
3
8
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
3
2
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
3
2
8
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
2
8
3
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
8
2
10
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
8
9
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
8
9
1
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
Dequeue();
9
1
8
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
9
1
7
12
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
Dequeue();
Enqueue(7);
Enqueue(6);
9
1
7
6
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE
(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
Dequeue();
Enqueue(7);
Enqueue(6);
Dequeue();
1
7
6
9
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE
(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
Dequeue();
Enqueue(7);
Enqueue(6);
Dequeue();
Dequeue();
7
6
1
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE
(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
Dequeue();
7
6
4
14
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE
(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
Dequeue();
Enqueue(7);
Enqueue(6);
Dequeue();
Dequeue();
Enqueue(4);
Dequeue();
6
4
7
3. D
ESCREVA A SAÍDA DAS SEGUINTES OPERAÇÕES DE UMA FILA:
ENQUEUE(5),
ENQUEUE
(3),
DEQUEUE(),
ENQUEUE(2),
ENQUEUE(8),
DEQUEUE(),
DEQUEUE(),
ENQUEUE
(9),
ENQUEUE(1),
DEQUEUE(),
ENQUEUE(7),
ENQUEUE(6),
DEQUEUE(),
DEQUEUE
(),
ENQUEUE(4),
DEQUEUE(),
DEQUEUE().
Enqueue(5);
Enqueue(3);
Dequeue();
Enqueue(2);
Enqueue(8);
Dequeue();
Dequeue();
Enqueue(9);
Enqueue(1);
Dequeue();
Enqueue(7);
Enqueue(6);
Dequeue();
Dequeue();
Enqueue(4);
Dequeue();
Dequeue();
4
6
COMOPARÂMETRO
.
public class SingleLinkedListNode<T> {
protected T data;
protected SingleLinkedListNode<T> next;
...
}
public class SingleLinkedListImpl<T> implements LinkedList<T> {
protected SingleLinkedListNode<T> head;
...
public void contatenate(SingleLinkedListImpl<T> (l){...}
}
4. C
ONSIDERE O SEGUINTE CÓDIGO DE UMA LISTA SIMPLES(
ABORDAGEM ITERATIVA).
E
SCREVA UMMÉTODO RECURSIVOQUE CONCATENAUMALISTA COM OUTRA PASSADA COMOPARÂMETRO.
public void concatenate(SingleLinkedListImpl<T>
lista){
if(!lista.isEmpty()){
public class SingleLinkedListNode<T> {
protected T data;
protected SingleLinkedListNode<T> next;
...
}
public class SingleLinkedListImpl<T> implements LinkedList<T> {
protected SingleLinkedListNode<T> head;
...
public void contatenate(SingleLinkedListImpl<T> (l){...}
}
16
E
SCREVA UMMÉTODO RECURSIVOQUE CONCATENAUMALISTA COM OUTRA PASSADACOMOPARÂMETRO
.
public void concatenate(SingleLinkedListImpl<T>
lista){
if(!lista.isEmpty()){
this.insert(lista.data);
concatenate(lista.next);
}
}
public class SingleLinkedListNode<T> {
protected T data;
protected SingleLinkedListNode<T> next;
...
}
public class SingleLinkedListImpl<T> implements LinkedList<T> {
protected SingleLinkedListNode<T> head;
...
public void contatenate(SingleLinkedListImpl<T> (l){...}
}
5. C
ONSIDERANDOOMESMOTRECHODECÓDIGOACIMAEUSANDORECURSÃOESCREVAUM MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO. V
OCÊ PODEASSUMIRQUEOTIPOT
POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO.
MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO
. V
OCÊ PODEASSUMIRQUEOTIPOT
POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO.
public boolean equals(SingleLinkedList<T> lista){
}
5. C
ONSIDERANDOOMESMOTRECHODECÓDIGOACIMAEUSANDORECURSÃOESCREVAUM MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO. V
OCÊ PODEASSUMIRQUEOTIPOT
POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO.
public boolean equals(SingleLinkedList<T> lista){
boolean resp = false;
18
5. C
ONSIDERANDOOMESMOTRECHODECÓDIGOACIMAEUSANDORECURSÃOESCREVAUM MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO. V
OCÊ PODEASSUMIRQUEOTIPOT
POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO.
public boolean equals(SingleLinkedList<T> lista){
boolean resp = false;
if( this.isEmpty()){
resp = lista.isEmpty();
}
}
5. C
ONSIDERANDOOMESMOTRECHODECÓDIGOACIMAEUSANDORECURSÃOESCREVAUM MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO. V
OCÊ PODEASSUMIRQUEOTIPOT
POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO.
public boolean equals(SingleLinkedList<T> lista){
boolean resp = false;
if( this.isEmpty()){
resp = lista.isEmpty();
} else{
resp = data.equals(lista.data) &&
next.equals(lista.next);
}
return resp;
}
MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO
. V
OCÊ PODEASSUMIRQUEOTIPOT
POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO.
public boolean equals(SingleLinkedList<T> lista){
boolean resp = false;
if( this.isEmpty()){
resp = lista.isEmpty();
} else{
resp = data.equals(lista.data) &&
next.equals(lista.next);
}
return resp;
}
6. I
MPLEMENTEDUASPILHASUSANDOUMMESMOARRAY(
ESTRUTURACOMPARTILHADA)
DETAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE
ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN
. A
SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADEO(1).
20
6. I
MPLEMENTEDUASPILHASUSANDOUMMESMOARRAY(
ESTRUTURACOMPARTILHADA)
DETAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE
ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN
. A
SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADEO(1).
Class PilhaDupla{
int SIZE;
int array[];
int top1;
int top2;
boolean isEmpty1(){
boolean isEmpty2(){
return top1 == -1;
return top2 == SIZE;
}
}
boolean isFull1(){
boolean isFull2(){
return top1 + 1 == top2;
return top2 - 1 == top1;
}
}
6. I
MPLEMENTEDUASPILHASUSANDOUMMESMOARRAY(
ESTRUTURACOMPARTILHADA)
DETAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE
ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN
. A
SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADEO(1).
Class PilhaDupla{
public pilhaDupla(int size){
SIZE = size;
array = new int[size];
top1 = -1;
top2 = size;
}
push1(int x){
push2(int x){
if(!isFull1()) {
if(!isFull2()) {
array[++top1] = x;
array[--top2] = x;
}else //stack OverFlow;
} else // stack OverFlow;
}
}
TAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN
. A
SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADEO(1).
Class PilhaDupla{
int pop1(){
int pop2(){
int resp = -1;
int resp = -1;
if(!isEmpty1()) {
if(!isEmpty2()) {
resp = array[top1];
resp = array[top2];
top1--;
top2++;
} else{
} else{
//stack underFlow;
//stack underFlow;
}
}
return resp;
return resp
}
}
}
7. N
A MATEMÁTICA,
O CONJUNTO É UMA COLEÇÃO DE OBJETOS QUE NÃO POSSUI ELEMENTOS REPETIDOS. I
MAGINEQUE VOCÊVAI USARSUA IMPLEMENTAÇÃODE LISTA ENCADEADAPARAREPRESENTARUMCONJUNTO. Q
UEMUDANÇASVOCÊFARIASEEMSUAIMPLEMENTAÇÃO DE CONJUNTO FOSSE USADO
:
L
ISTA SIMPLESMENTE ENCADEADA(
ABORDAGEM RECURSIVA).
L
ISTA DUPLAMENTE ENCADEADA(
ABORDAGEM ITERATIVA).
22
7. N
A MATEMÁTICA,
O CONJUNTO É UMA COLEÇÃO DE OBJETOS QUE NÃO POSSUI ELEMENTOS REPETIDOS. I
MAGINEQUE VOCÊVAI USARSUA IMPLEMENTAÇÃODE LISTA ENCADEADAPARAREPRESENTARUMCONJUNTO. Q
UEMUDANÇASVOCÊFARIASEEMSUAIMPLEMENTAÇÃO DE CONJUNTO FOSSE USADO
:
L
ISTA SIMPLESMENTE ENCADEADA(
ABORDAGEM RECURSIVA).
L
ISTA DUPLAMENTE ENCADEADA(
ABORDAGEM ITERATIVA).
O
BS:
DESCREVAAMUDANÇAEIMPLEMENTE-
AEMAMBASSITUAÇÕES.
Class Set<T>extends RecursiveSingleLinkedListImpl<T>{
//É preciso alterar o inserir para não permitir duplicatas;
7. N
A MATEMÁTICA,
O CONJUNTO É UMA COLEÇÃO DE OBJETOS QUE NÃO POSSUI ELEMENTOS REPETIDOS. I
MAGINEQUE VOCÊVAI USARSUA IMPLEMENTAÇÃODE LISTA ENCADEADAPARAREPRESENTARUMCONJUNTO. Q
UEMUDANÇASVOCÊFARIASEEMSUAIMPLEMENTAÇÃO DE CONJUNTO FOSSE USADO
:
L
ISTA SIMPLESMENTE ENCADEADA(
ABORDAGEM RECURSIVA).
L
ISTA DUPLAMENTE ENCADEADA(
ABORDAGEM ITERATIVA).
O
BS:
DESCREVAAMUDANÇAEIMPLEMENTE-
AEMAMBASSITUAÇÕES.
Class Set<T>extends RecursiveSingleLinkedListImpl<T>{
//É preciso alterar o insert para não permitir duplicatas;
@Override
void insert(T elem){
if(isEmpty()){
data = elem;
next = new Set<T>;
}else{
if(!data.equals(elem)){
next.insert(elem);
}
}
}
}
Θ(1)
T(n-1)
ENCADEADAPARAREPRESENTARUMCONJUNTO
. Q
UEMUDANÇASVOCÊFARIASEEMSUAIMPLEMENTAÇÃO DE CONJUNTO FOSSE USADO
:
L
ISTA SIMPLESMENTE ENCADEADA(
ABORDAGEM RECURSIVA).
L
ISTA DUPLAMENTE ENCADEADA(
ABORDAGEM ITERATIVA).
O
BS:
DESCREVAAMUDANÇAEIMPLEMENTE-
AEMAMBASSITUAÇÕES.
Class Set<T> extends DoubleLinkedListImpl<T>{
//na lista dupla, o inserir default é o insertFirst;
//precisa alterar o insert e o insertLast para não permitir duplicatas;
7. N
A MATEMÁTICA,
O CONJUNTO É UMA COLEÇÃO DE OBJETOS QUE NÃO POSSUI ELEMENTOS REPETIDOS. I
MAGINEQUE VOCÊVAI USARSUA IMPLEMENTAÇÃODE LISTA ENCADEADAPARAREPRESENTARUMCONJUNTO. Q
UEMUDANÇASVOCÊFARIASEEMSUAIMPLEMENTAÇÃO DE CONJUNTO FOSSE USADO