you are here: codestackercodes [RSS] → tag java [RSS]

estrutura de dados

exercícios sobre pilhas e filas

public class exercicio_pilha_fila {

    int topo = 0;
    int maxPilha = 0;
    int pilha[] = new int[maxPilha];
    int comeco = 0;
    int fim = 0;
    int total = 0;
    int maxFila = 0;
    int[] fila = new int[maxFila];
    
	// 15/03/2010

    // Desenvolva um método para remover uma determinada quantidade de dados

 	// em uma pilha estática. Caso nao haja inserida, remova o possivel

    public void remove() {
        if (topo == 0) {
            System.out.println("Pilha Vazia");
        } else {
            int qtde = Leitura.readInteger();
            if (qtde > topo) {
                System.out.println("Quantidade: " + (qtde - topo));
                topo = 0;
            } else {
                topo = topo - qtde;
            }
        }
    }

    // 15/03/2010

	// Desenvolva um método que através de uma ED tipo pilha verifique

	// se uma palavra é palíndroma. Ex.: ovo, ama, asa

    public void Palavra() {
		if (topo == 0) {
			System.out.println("Lista Vazia");
		} else {
			int cont = topo - 1;
			int aux = 0;
			while ((pilha[aux].equals(pilha[cont])) && (cont > aux)) {
				cont--;
				aux++;
			}
			
			if (aux > cont) {
				System.out.println("Palíndroma");
			} else {
				System.out.println("Não palíndroma");
			}
		}
    }

    // 22/03/2010

	// Exemplo do caderno: Insere fila

    public void InsereFila() {
        if (total == maxFila) {
            System.out.println("fila cheia");
        } else {
            if (fim == maxFila) {
                fim = 0;
                int tes = Leitura.readInteger(" Digite algo::");
                fila[fim] = tes;
                fim++;
                total++;
            }
        }
    }

    // 22/03/2010

	// Exemplo do caderno: Remove fila

    public void RemovaFila() {
        if (total == 0) {
            System.out.println("Fila vazia");
        } else {
            if (comeco == maxFila) {
                comeco = 0;
            }
			comeco++;
            total--;
        }
    }

    // 24/03/2010 

	// Considere 2 estruturas de fila estática. Verifica se 

	// ambas sequências de remoção e quantidade são iguais

    public void Verifica_Igualdade() {
		if (total1 != total2) {
			System.out.println("Tamanhos diferentes");
		} else {
			if (com1 != max) {
				int aux1 = com1;
			} else {
				int aux1 = 0;
			}
			
			if (com2 != max) {
				int aux2 = com2;
			} else {
				int aux2 = 0;
			}
			
			int cont = 0;
			while ((cont != total1) && (fila1[aux1] == fila2[aux2])) {
				aux1++;
				aux2++;
				
				if (aux1 == max) {
					aux1 = 0;
				}
				if (aux2 == max) {
					aux2 = 0;
				}
				cont++;
			}
			
			if (cont == total) {
				System.out.println("Filas iguais");
			} else {
				System.out.println("Filas diferentes");
			}
		}
    }

    // 24/03/2010 

	// Desenvolva um método para verificar qual posição

	// da fila um determinado valor foi encontrado

    public void LocalizaPosicao() {
        if (total == 0) {
            System.out.println("Fila vazia");
        } else {
            int valor = Leitura.readInteger("Digite valor a ser localizado: ");
            if (comeco == maxFila) {
                int aux = 0;
            } else {
                int aux = comeco;
                int cont = 0;
                while ((cont != total) && (valor != fila[aux])) {
                    aux++;
                    cont++;
                    if (aux == maxFila) {
                        System.out.println("Não encontrado");
                    } else {
                        System.out.println("Encontrado:  " + (cont + 1));
                    }
                }
            }
        }
    }

    // 24/03/2010     

	// Crie uma ED fila que ao receber a multiplicação dos valores cadastrados

	// em 2 filas estáticas que possuem a mesma quantidade de dados

    public void Multiplica() {
        int maxFila2 = 0;
        int comeco2 = 0;

        if (total == 0) {
            System.out.println("fila vazia");
        } else {
            int[] fila3 = new int[total];
            if (comeco == maxFila) {
                int aux = 0;
            } else {
                int aux = comeco;
            }
            if (comeco2 == maxFila2) {
                int aux2 = 0;
            } else {
                int aux2 = comeco2;
                int cont = 0;
                while (cont != total) {
                    fila3[fim3] = (fila[aux] * fila2[aux2]);
                    aux++;
                    aux2++;
                    fim3++;
                    total3++;
                    if (aux == maxFila) {
                        aux = 0;
                    }
                    if (aux2 == maxFila) {
                        aux2 = 0;
                        cont++;
                    }
                }
            }
        }
    }

    // Exemplo do caderno

	// Desenvolva um método para apresentar o primeiro e o ultimo elemento da fila.

    public void Apresenta() {
        if (total == 0) {
            System.out.println("Fila vazia");
        } else {
            System.out.println("Começo: " + fila[comeco] + " último: " + fila[fim - 1]);
        }
    }

    // 31/03/2010 

	// Remova os elementos de uma pilha e uma fila simultaneamente,

	// enquanto ambos estruturas forem iguais

    public void RemovePilhaFila() {
        if ((topo == 0) || (total == 0)) {
            System.out.println("Fila ou pilha vazias");
        } else {
            while ((total > 0) && (topo > 0) && (pilha[topo - 1] == fila[comeco])) {
                topo--;
                comeco++;
                total--;

                if (comeco == maxFila) {
                    comeco = 0;
                }
            }
        }
    }

    // 31/03/2010 

    // Considere uma agência de viagens, a qual trabalha com

 	// fila de espera. Considere o cliente cod 9783. Verifique 

	// em 2 filas, as quais este cliente esta cadastrado, qual

	// apresenta a maior possibilidade de conseguir a passagem

    public void Localiza() {
		if (comeco1 == max) {
			int aux1 = 0;
		} else {
			int aux1 = comeco1;
		}
		
		if (comeco2 == max) {
			int aux2 = 0;
		} else {
			int aux2 = comeco2;
		}
		
		int cont1 = 0;
		int cont2 = 0;
		
		while (fila1[aux1] != 9783) {
			cont1++;
			aux1++;
			if (aux1 == max) {
				aux1 = 0;
			}
		}
		
		while (fila2[aux2] != 9783) {
			cont2++;
			aux2++;
			if (aux2 == max) {
				aux2 = 0;
			}
		}
		
		if (cont1 > cont2) {
			System.out.println("Fila 1 menor");
		} else if (cont2 < cont1) {
			System.out.println ("Fila 2 menor");
		} else {
			System.out.println ("Tanto faz");
		}
    }

    // 31/03/2010 

    // Considere uma pilha a qual foi inserida de forma intermediária valores

	// positivos e negativos altere a ED de forma a possuir somente os 

	// valores positivos. Não há a necessidade de manter a pilha original

    public void PilhaPositiva() {
        if (topo == 0) {
            System.out.println("Pilha esta vazia!!");
        } else {
			int PilhaN = new Int[(topo/2) + 1];
			int TopoN = 0;
			
			while (TopoN > 0) {
				if (pilha[topo - 1] > 0) {
					PilhaN[TopoN] = pilha[topo -1];
					TopoN++;
				}
				topo--;
			}
		}
    }

	// Outro semestre

    // Desenvolva um método para remover com exceção do 

	// primeiro, todos os outros elementos da fila

    public void RestaUm() {
        if (total == 0) {
            System.out.println("fila vazia");
        } else {
            total = 1;
            comeco = fim - 1;
        }
    }

    // Outro semestre

	// Crie um método para apresentar todos os dados

	// inseridos em uma fila (do primeiro ao ultimo)

    public void ApresentaTodos() {
        if (total == 0) {
            System.out.println("Fila vazia");
        } else {
            int aux = comeco;
            int cont = 0;

            while (cont != total) {
                if (aux == maxFila) {
                    aux = 0;
				}
                System.out.println("Retorno:  " + fila[aux]);
                aux++;
                cont++;
            }
        }
    }

	// Outro semestre

	// Se pilha e fila são formas de listas por que existem especifidades para ambas?

	// Porque existem situações computacionais que exigem restrições.

	// Ex. Pilha: CTRL + Z, voltar do browser, recurvidade.

	// Ex. Fila: Impressora


    // Outro semestre

	// Desenvolva um método para preencher todas alocacoes vazias 

	// de uma ED tipo pilha com um determinado valor digitado pelo usuário

    public void PreencherPilha() {
        if (total == maxPilha) {
            System.out.println("Pilha vazia");
        } else {
            int texto = Leitura.readInteger(" Digite algo::");

            while (topo < maxPilha) {
                pilha[topo] = texto;
                topo++;
            }
        }
    }

    // Outro semestre

	// Crie um método para realizar o backup de uma lista ED tipo fila

    public void BackupFilaOutro() {
        if (total == 0) {
            System.out.println("Fila vazia");
        } else {
            int filaBackup[] = new int[total];
            int aux = comeco;
            int totalBackup = 0;
        	int fimBackup = 0;
            
			while (totalBackup != total) {
                filaBackup[totalBackup] = fila[aux];
                totalBackup++;
                aux++;
                fimBackup++;

                if (aux == maxFila) {
                    aux = 0;
                }
                int comecoBackup = 0;
            }
        }
    }

    // Outro semestre

	// Desenvolva um método para apresentar na sequência de remoção

	// todos os dados inseridos em uma ED tipo fila estática

    public void apresentaFila() {
        if (total == 0) {
            System.out.println("Fila vazia");
        } else {
            int cont = comeco;
            int aux = 0;

            while (aux != total) {
                if (cont == maxFila) {
                    cont = 0;
                    System.out.println("Apresenta Fila" + fila[cont]);
                    cont++;
                    aux++;
                }
            }
        }
    }
}

transparent jbutton

Insets noInsets = new Insets(0,0,0,0);
ImageIcon bg = new ImageIcon("bt1.png");
JButton btn = new JButton(bg);
btn.setBounds(0,0,32,32);
btn.setMargin(noInsets);			
btn.setBorder(BorderFactory.createEmptyBorder());
btn.setContentAreaFilled(false);
Displaying all 2 Code