Buscar

lab8 2

Prévia do material em texto

UNESP/FEG/DMA	
Programação	de	Computadores	II	-	Prof.	Senne	
Exercício	de	Laboratório	8.2		
ATENÇÃO:	Não	esquecer	de	incluir	os	nomes	dos	alunos	da	turma	nas	classes	Java.		
Atividade:	Classe	Estrutura.		Uma	estrutura	de	dados	 é	 uma	 forma	de	 organização	 de	 dados	 em	um	 computador.	Esta	 organização	 refere-se	 a	 como	 os	 dados	 são	 incluídos	 na	 estrutura	 e	 como	 são	extraídos	da	estrutura.	Três	estruturas	de	dados	muito	conhecidas	são	a	pilha,	a	fila	e	o	deque.	Na	 estrutura	 de	pilha,	 os	 dados	 são	 incluídos	 e	 extraídos	 sempre	 do	 início	 da	estrutura	(denominado	de	topo	da	pilha).	Na	estrutura	de	fila,	os	dados	são	incluídos	sempre	 no	 fim	 da	 estrutura	 (fim	 da	 fila)	 e	 extraídos	 sempre	 do	 início	 da	 estrutura	(início	da	fila).		O	deque	é	uma	estrutura	de	dados	que	combina	as	estruturas	de	pilha	e	fila,	ou	seja,	os	dados	são	extraídos	do	 início,	mas	podem	ser	 incluídos	no	 início	ou	no	fim	da	estrutura.	A	classe	Estrutura	apresenta	a	GUI	mostrada	a	seguir,	que	dispõe	de	opções	para	incluir	e	excluir	dados	nessas	três	estruturas.		
		Implementar	as	funcionalidades	descritas	abaixo	e	de	acordo	com	a	seguinte	hierarquia	de	classes	(observar	que	Pilha,	Fila	e	Deque	são	interfaces):		
Pilha	 	 Fila		 	 	+	void	empilhar(int	valor)	 	 +	void	enfileirar(int	valor)			
Deque		+	boolean	estaVazia()	+	void	extrair()			
Estrutura	
−	ArrayList	dados	+	Estrutura()	
− int	gerarAleatorio(int	a,	int	b)	.	.	.	
− void	gerarEstrutura()	
−	void	limparEstrutura()	
−	void	incluirNaEstrutura(boolean	inicio,	int	valor)	
−	void	excluirDaEstrutura()			
A	seleção	dos	botões	Pilha	e	Fila	no	painel	superior	esquerdo	deve	tornar	 invisível	o	painel	inferior	esquerdo,	ou	seja,	o	painel	inferior	esquerdo	deve	ser	visível	apenas	se	o	botão	Deque	estiver	selecionado.		O	 construtor	 da	 classe	 Estrutura,	 além	 de	 criar	 a	 GUI,	 deve	 criar	 o	 ArrayList	dados	como	 uma	 coleção	 vazia.	 Esta	 coleção	 será	 utilizada	 para	 armazenar	 os	 dados	 da	estrutura	de	dados	selecionada	(Pilha,	Fila	ou	Deque).		O	 click	 no	 botão	Gerar	 deve	 chamar	 o	 método	 gerarEstrutura().	 Este	 método	 deve	preencher	 a	 coleção	dados	 com	 valores	 inteiros	 gerados	 aleatoriamente	 no	 intervalo	[10,	 99].	 O	 tamanho	 da	 coleção	 deve	 ser	 gerado	 aleatoriamente	 no	 intervalo	 [5,	 10].	Além	disso,	este	método	deve	exibir	a	coleção	gerada	no	painel	central	e	desabilitar	os	botões	de	 rádio	do	painel	 superior	 esquerdo.	A	 coleção	gerada	deve	 ser	 tratada	 como	uma	pilha,	uma	fila	ou	um	deque	de	acordo	com	o	botão	selecionado	no	momento	em	que	a	coleção	foi	gerada.		O	click	no	botão	Limpar	deve	chamar	o	método	limparEstrutura().	Este	método	deve	remover	 todos	 os	 dados	 presentes	 na	 coleção	 dados	 e	 restaurar	 a	 GUI	 de	 modo	 a	apresentar	a	interface	exatamente	como	mostrado	na	figura	acima.		O	click	no	botão	Incluir	deve	chamar	o	método	incluirNaEstrutura(boolean	inicio,	int	
valor).	O	parâmetro	inicio	deste	método	deve	ser	true,	se	o	dado	for	incluído	no	início	da	estrutura;	caso	contrário,	o	parâmetro	deve	ser	false.	Observar	que	se	a	estrutura	de	dados	for	uma	pilha,	o	valor	de	inicio	deve	ser	true;	se	for	uma	fila,	o	valor	de	inicio	deve	ser	 false;	e	se	 for	um	deque,	o	valor	de	 inicio	depende	do	botão	selecionado	no	painel	 inferior	 esquerdo.	O	 parâmetro	valor	 ser	 um	 inteiro	 gerado	 aleatoriamente	no	intervalo	 [10,	99].	Este	método	deve	 incluir	valor	no	 início	ou	 final	da	coleção	dados,	dependendo	 do	 valor	 do	 parâmetro	 inicio.	 Para	 incluir	 o	 novo	 valor	 na	 estrutura	 de	dados,	 este	 método	 deve	 chamar	 o	 método	 empilhar()	 ou	 o	 método	 enfileirar(),	conforme	o	caso.	A	coleção	atualizada	deve	ser	exibida	no	painel	central.		O	click	 no	botão	Excluir	 deve	 chamar	o	método	excluirDaEstrutura().	Observar	que,	qualquer	que	seja	a	estrutura	de	dados,	o	dado	deve	ser	excluído	do	início	da	estrutura.	Este	método	deve	chamar	o	método	estaVazia()	para	verificar	se	existe	ou	não	dado	a	ser	excluído	da	coleção	dados.	Caso	a	coleção	não	esteja	vazia,	este	método	deve	chamar	o	 método	 extrair()	 para	 excluir	 o	 elemento	 que	 está	 no	 início	 da	 coleção.	 A	 coleção	atualizada	deve	ser	exibida	no	painel	central.

Continue navegando