• Nenhum resultado encontrado

ListaTAD

N/A
N/A
Protected

Academic year: 2021

Share "ListaTAD"

Copied!
26
0
0

Texto

(1)

Aula de Exercícios

19/02/2013

Monitor: Túlio Figueiredo de Castro

Email: Tulio.figueiredo@gmail.com

1. S

UPONHAQUEUMAPILHA

S

INICIALMENTEVAZIAREALIZOUUMTOTAL

25

OPERAÇÕES

PUSH

,

12

OPERAÇÕESTOPE

10

OPERAÇÕESPOPEMUMADETERMINADAORDEM

. 3

OPERAÇÕESPOP RETORNARAM

S

TACK

U

NDERFLOW

E

XCEPTION

(

EXCEÇÃO DE PILHA VAZIA

). Q

UAL É O TAMANHOATUALDAPILHA

S?

(2)

2

1. S

UPONHAQUEUMAPILHA

S

INICIALMENTEVAZIAREALIZOUUMTOTAL

25

OPERAÇÕES

PUSH

,

12

OPERAÇÕESTOPE

10

OPERAÇÕESPOPEMUMADETERMINADAORDEM

. 3

OPERAÇÕESPOP RETORNARAM

S

TACK

U

NDERFLOW

E

XCEPTION

(

EXCEÇÃO DE PILHA VAZIA

). Q

UAL É O TAMANHOATUALDAPILHA

S?

S inicialmente vazia

1. S

UPONHAQUEUMAPILHA

S

INICIALMENTEVAZIAREALIZOUUMTOTAL

25

OPERAÇÕES

PUSH

,

12

OPERAÇÕESTOPE

10

OPERAÇÕESPOPEMUMADETERMINADAORDEM

. 3

OPERAÇÕESPOP RETORNARAM

S

TACK

U

NDERFLOW

E

XCEPTION

(

EXCEÇÃO DE PILHA VAZIA

). Q

UAL É O TAMANHOATUALDAPILHA

S?

S inicialmente vazia

25 push

(3)

1. S

UPONHAQUEUMAPILHA

S

INICIALMENTEVAZIAREALIZOUUMTOTAL

25

OPERAÇÕES

PUSH

,

12

OPERAÇÕESTOPE

10

OPERAÇÕESPOPEMUMADETERMINADAORDEM

. 3

OPERAÇÕESPOP RETORNARAM

S

TACK

U

NDERFLOW

E

XCEPTION

(

EXCEÇÃO DE PILHA VAZIA

). Q

UAL É O TAMANHOATUALDAPILHA

S?

S inicialmente vazia

25 push

12 top

1. S

UPONHAQUEUMAPILHA

S

INICIALMENTEVAZIAREALIZOUUMTOTAL

25

OPERAÇÕES

PUSH

,

12

OPERAÇÕESTOPE

10

OPERAÇÕESPOPEMUMADETERMINADAORDEM

. 3

OPERAÇÕESPOP RETORNARAM

S

TACK

U

NDERFLOW

E

XCEPTION

(

EXCEÇÃO DE PILHA VAZIA

). Q

UAL É O TAMANHOATUALDAPILHA

S?

S inicialmente vazia

25 push

12 top

(4)

4

1. S

UPONHAQUEUMAPILHA

S

INICIALMENTEVAZIAREALIZOUUMTOTAL

25

OPERAÇÕES

PUSH

,

12

OPERAÇÕESTOPE

10

OPERAÇÕESPOPEMUMADETERMINADAORDEM

. 3

OPERAÇÕESPOP RETORNARAM

S

TACK

U

NDERFLOW

E

XCEPTION

(

EXCEÇÃO DE PILHA VAZIA

). Q

UAL É O TAMANHOATUALDAPILHA

S?

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 PARA

REMOVER TODOS OS

OSELEMENTOSDEUMAPILHA

(

RESETARAPILHA

).

public class StackImpl<T> implements Stack<T> {

private T[] array;

private int top;

//metodos todos implementados

}

(5)

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 PARA

REMOVER 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)

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

().

(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);

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)

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

(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();

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)

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

(11)

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)

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

(13)

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)

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

(15)

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)

16

E

SCREVA UMMÉTODO RECURSIVOQUE CONCATENAUMALISTA COM OUTRA PASSADA

COMOPARÂ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Ê PODEASSUMIRQUEOTIPO

T

POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO

.

(17)

MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO

. V

OCÊ PODEASSUMIRQUEOTIPO

T

POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO

.

public boolean equals(SingleLinkedList<T> lista){

}

5. C

ONSIDERANDOOMESMOTRECHODECÓDIGOACIMAEUSANDORECURSÃOESCREVAUM MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO

. V

OCÊ PODEASSUMIRQUEOTIPO

T

POSSUIIMPLEMENTADOOMÉTODOEQUALSIMPLEMENTADO

.

public boolean equals(SingleLinkedList<T> lista){

boolean resp = false;

(18)

18

5. C

ONSIDERANDOOMESMOTRECHODECÓDIGOACIMAEUSANDORECURSÃOESCREVAUM MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO

. V

OCÊ PODEASSUMIRQUEOTIPO

T

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Ê PODEASSUMIRQUEOTIPO

T

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;

}

(19)

MÉTODOQUEVERIFICASEUMALISTAÉIGUALAOUTRAPASSADACOMOPARÂMETRO

. V

OCÊ PODEASSUMIRQUEOTIPO

T

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

)

DE

TAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE

ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN

. A

SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADE

O(1).

(20)

20

6. I

MPLEMENTEDUASPILHASUSANDOUMMESMOARRAY

(

ESTRUTURACOMPARTILHADA

)

DE

TAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE

ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN

. A

SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADE

O(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

)

DE

TAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE

ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN

. A

SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADE

O(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;

}

}

(21)

TAMANHO N DE FORMA QUEO OVERFLOW NÃO ACONTECE ENQUANTO ONUMERO DE ELEMENTOSDASDUASPILHASJUNTASNÃOULTRAPASSARN

. A

SOPERAÇÕESDEPUSHEPOP DEVEMTERCOMPLEXIDADE

O(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ÊFARIASEEMSUA

IMPLEMENTAÇÃO DE CONJUNTO FOSSE USADO

:

L

ISTA SIMPLESMENTE ENCADEADA

(

ABORDAGEM RECURSIVA

).

L

ISTA DUPLAMENTE ENCADEADA

(

ABORDAGEM ITERATIVA

).

(22)

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ÊFARIASEEMSUA

IMPLEMENTAÇÃ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ÊFARIASEEMSUA

IMPLEMENTAÇÃ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)

(23)

ENCADEADAPARAREPRESENTARUMCONJUNTO

. Q

UEMUDANÇASVOCÊFARIASEEMSUA

IMPLEMENTAÇÃ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ÊFARIASEEMSUA

IMPLEMENTAÇÃ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;

@Override

void insert(T elem){

T proc = this.search(elem);

if(proc == null){

super.insert(elem);

}

}

@Override

(24)

24

8. C

ONSIDERANDOSUAIMPLEMENTAÇÃODECONJUNTONAQUESTÃOANTERIOR

,

SUPONDO QUEVOCÊ DESEJAIMPLEMENTAR UMMÉTODO QUEFAZAUNIÃODEDOISCONJUNTOS

.

I

MPLEMENTEESSEMÉTODOCONSIDERANDOASSEGUINTESSITUAÇÕES

:

• Lista simplesmente encadeada (abordagem recursiva). É possível implementar o

método em O(1)? Qual seria a complexidade do método implementado?

8. C

ONSIDERANDOSUAIMPLEMENTAÇÃODECONJUNTONAQUESTÃOANTERIOR

,

SUPONDO QUEVOCÊ DESEJAIMPLEMENTAR UMMÉTODO QUEFAZAUNIÃODEDOISCONJUNTOS

.

I

MPLEMENTEESSEMÉTODOCONSIDERANDOASSEGUINTESSITUAÇÕES

:

• Lista simplesmente encadeada (abordagem recursiva). É possível implementar o

método em O(1)? Qual seria a complexidade do método implementado?

void union (Set<T> s){

if( !s.isEmpty()){

this.insert(s.getData()); //O insert já verifica se há repetição;

this.union(s.next);

}

}

(25)

I

MPLEMENTEESSEMÉTODOCONSIDERANDOASSEGUINTESSITUAÇÕES

:

• Lista simplesmente encadeada (abordagem recursiva). É possível implementar o

método em O(1)? Qual seria a complexidade do método implementado?

void union (Set<T> s){

if( !s.isEmpty()){

this.insert(s.getData()); //O insert já verifica se há repetição;

this.union(s.next);

}

}

//Como "s" vai ser todo percorrido , a complexidade será: Θ(n)

8. C

ONSIDERANDOSUAIMPLEMENTAÇÃODECONJUNTONAQUESTÃOANTERIOR

,

SUPONDO QUEVOCÊ DESEJAIMPLEMENTAR UMMÉTODO QUEFAZAUNIÃODEDOISCONJUNTOS

.

I

MPLEMENTEESSEMÉTODOCONSIDERANDOASSEGUINTESSITUAÇÕES

:

• Lista duplamente encadeada (abordagem iterativa). É possível implementar o

método em

(26)

26

8. C

ONSIDERANDOSUAIMPLEMENTAÇÃODECONJUNTONAQUESTÃOANTERIOR

,

SUPONDO QUEVOCÊ DESEJAIMPLEMENTAR UMMÉTODO QUEFAZAUNIÃODEDOISCONJUNTOS

.

I

MPLEMENTEESSEMÉTODOCONSIDERANDOASSEGUINTESSITUAÇÕES

:

• Lista duplamente encadeada (abordagem iterativa). É possível implementar o

método em

O(1)?

void union (Set<T> s){

if( this.isEmpty()){

this.head = s.head;

this.last = s.last;

} else{

if(!s.isEmpty()){

aux = s.head;

while( !aux.isEmpty()){

this.insertLast(aux.getData());

aux = aux.next;

}

}

}

}

//Como "s" vai ser todo percorrido , a complexidade será: Θ(n)

8. C

ONSIDERANDOSUAIMPLEMENTAÇÃODECONJUNTONAQUESTÃOANTERIOR

,

SUPONDO QUEVOCÊ DESEJAIMPLEMENTAR UMMÉTODO QUEFAZAUNIÃODEDOISCONJUNTOS

.

I

MPLEMENTEESSEMÉTODOCONSIDERANDOASSEGUINTESSITUAÇÕES

:

• Lista duplamente encadeada (abordagem iterativa). É possível implementar o

método em

O(1)?

void union (Set<T> s){

if( this.isEmpty()){

this.head = s.head;

this.last = s.last;

} else{

if(!s.isEmpty()){

aux = s.head;

while( !aux.isEmpty()){

this.insertLast(aux.getData());

aux = aux.next;

}

}

}

}

Referências

Documentos relacionados

As coisas relativas à vida com Deus e ao seu serviço lhes são tediosas, e não podem encontrar qualquer alegria nelas, porque apagaram o Espírito Santo e

Sem desconsiderar as dificuldades próprias do nosso alunado – muitas vezes geradas sim por um sistema de ensino ainda deficitário – e a necessidade de trabalho com aspectos textuais

Entre outras, podem ser citadas: a falta de apoio dos grandes partidos no Congresso Nacional; o crescente isolamento político que o presidente passou a sofrer muito em função

thread corrente em estado de espera até que outra thread chame os métodos notify ou notifyAll liberando o

A implementação da pesquisa como prática de formação é difícil, mais pela concepção restrita dada à pesquisa pelas “comunidades científicas” do que pela

Há amplo espaço para preocupação quanto às dificuldades para aprovação de reformas necessárias à contenção do déficit público, peça crucial para o sucesso

15 Conforme Pace (2012) o termo parece insuficiente frente a multiplicidade de formas da construção da identidade pessoal, que extrapolam o domínio literário e

Os motins na América Portuguesa tanto quanto na Espanhola derivam do colapso das formas acomodativas - como será melhor explicado à frente -, ou melhor dizendo, do rompimento