document.write("
\n"); document.write(" \n"); document.write(" \n"); document.write("
public <\/span>class<\/span> exercicio_pilha_fila<\/span> <\/span>{\n");
document.write("    int<\/span> topo = 0<\/span>;\n");
document.write("    int<\/span> maxPilha = 0<\/span>;\n");
document.write("    int<\/span> pilha[] = new<\/span> int<\/span>[maxPilha];\n");
document.write("    int<\/span> comeco = 0<\/span>;\n");
document.write("    int<\/span> fim = 0<\/span>;\n");
document.write("    int<\/span> total = 0<\/span>;\n");
document.write("    int<\/span> maxFila = 0<\/span>;\n");
document.write("    int<\/span>[] fila = new<\/span> int<\/span>[maxFila];\n");
document.write("	//<\/span> 15/03/2010<\/span>\n");
document.write("    //<\/span> Desenvolva um método para remover uma determinada quantidade de dados<\/span>\n");
document.write(" 	//<\/span> em uma pilha estática. Caso nao haja inserida, remova o possivel<\/span>\n");
document.write("    public <\/span>void<\/span> remove<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (topo ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Pilha Vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            int<\/span> qtde = Leitura<\/span>.readInteger();\n");
document.write("            if<\/span> (qtde ><\/span> topo) {\n");
document.write("                System<\/span>.out.println("<\/span>Quantidade: "<\/span><\/span> +<\/span> (qtde -<\/span> topo));\n");
document.write("                topo = 0<\/span>;\n");
document.write("            } else<\/span> {\n");
document.write("                topo = topo -<\/span> qtde;\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> 15/03/2010<\/span>\n");
document.write("	//<\/span> Desenvolva um método que através de uma ED tipo pilha verifique<\/span>\n");
document.write("	//<\/span> se uma palavra é palíndroma. Ex.: ovo, ama, asa<\/span>\n");
document.write("    public <\/span>void<\/span> Palavra<\/span>(<\/span>) <\/span>{\n");
document.write("		if<\/span> (topo ==<\/span> 0<\/span>) {\n");
document.write("			System<\/span>.out.println("<\/span>Lista Vazia"<\/span><\/span>);\n");
document.write("		} else<\/span> {\n");
document.write("			int<\/span> cont = topo -<\/span> 1<\/span>;\n");
document.write("			int<\/span> aux = 0<\/span>;\n");
document.write("			while<\/span> ((pilha[aux].equals(pilha[cont])) &&<\/span> (cont ><\/span> aux)) {\n");
document.write("				cont--<\/span>;\n");
document.write("				aux++<\/span>;\n");
document.write("			}\n");
document.write("			if<\/span> (aux ><\/span> cont) {\n");
document.write("				System<\/span>.out.println("<\/span>Palíndroma"<\/span><\/span>);\n");
document.write("			} else<\/span> {\n");
document.write("				System<\/span>.out.println("<\/span>Não palíndroma"<\/span><\/span>);\n");
document.write("			}\n");
document.write("		}\n");
document.write("    }\n");
document.write("    //<\/span> 22/03/2010<\/span>\n");
document.write("	//<\/span> Exemplo do caderno: Insere fila<\/span>\n");
document.write("    public <\/span>void<\/span> InsereFila<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> maxFila) {\n");
document.write("            System<\/span>.out.println("<\/span>fila cheia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            if<\/span> (fim ==<\/span> maxFila) {\n");
document.write("                fim = 0<\/span>;\n");
document.write("                int<\/span> tes = Leitura<\/span>.readInteger("<\/span> Digite algo::"<\/span><\/span>);\n");
document.write("                fila[fim] = tes;\n");
document.write("                fim++<\/span>;\n");
document.write("                total++<\/span>;\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> 22/03/2010<\/span>\n");
document.write("	//<\/span> Exemplo do caderno: Remove fila<\/span>\n");
document.write("    public <\/span>void<\/span> RemovaFila<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            if<\/span> (comeco ==<\/span> maxFila) {\n");
document.write("                comeco = 0<\/span>;\n");
document.write("            }\n");
document.write("			comeco++<\/span>;\n");
document.write("            total--<\/span>;\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> 24/03/2010 <\/span>\n");
document.write("	//<\/span> Considere 2 estruturas de fila estática. Verifica se <\/span>\n");
document.write("	//<\/span> ambas sequências de remoção e quantidade são iguais<\/span>\n");
document.write("    public <\/span>void<\/span> Verifica_Igualdade<\/span>(<\/span>) <\/span>{\n");
document.write("		if<\/span> (total1 !=<\/span> total2) {\n");
document.write("			System<\/span>.out.println("<\/span>Tamanhos diferentes"<\/span><\/span>);\n");
document.write("		} else<\/span> {\n");
document.write("			if<\/span> (com1 !=<\/span> max) {\n");
document.write("				int<\/span> aux1 = com1;\n");
document.write("			} else<\/span> {\n");
document.write("				int<\/span> aux1 = 0<\/span>;\n");
document.write("			}\n");
document.write("			if<\/span> (com2 !=<\/span> max) {\n");
document.write("				int<\/span> aux2 = com2;\n");
document.write("			} else<\/span> {\n");
document.write("				int<\/span> aux2 = 0<\/span>;\n");
document.write("			}\n");
document.write("			int<\/span> cont = 0<\/span>;\n");
document.write("			while<\/span> ((cont !=<\/span> total1) &&<\/span> (fila1[aux1] ==<\/span> fila2[aux2])) {\n");
document.write("				aux1++<\/span>;\n");
document.write("				aux2++<\/span>;\n");
document.write("				if<\/span> (aux1 ==<\/span> max) {\n");
document.write("					aux1 = 0<\/span>;\n");
document.write("				}\n");
document.write("				if<\/span> (aux2 ==<\/span> max) {\n");
document.write("					aux2 = 0<\/span>;\n");
document.write("				}\n");
document.write("				cont++<\/span>;\n");
document.write("			}\n");
document.write("			if<\/span> (cont ==<\/span> total) {\n");
document.write("				System<\/span>.out.println("<\/span>Filas iguais"<\/span><\/span>);\n");
document.write("			} else<\/span> {\n");
document.write("				System<\/span>.out.println("<\/span>Filas diferentes"<\/span><\/span>);\n");
document.write("			}\n");
document.write("		}\n");
document.write("    }\n");
document.write("    //<\/span> 24/03/2010 <\/span>\n");
document.write("	//<\/span> Desenvolva um método para verificar qual posição<\/span>\n");
document.write("	//<\/span> da fila um determinado valor foi encontrado<\/span>\n");
document.write("    public <\/span>void<\/span> LocalizaPosicao<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            int<\/span> valor = Leitura<\/span>.readInteger("<\/span>Digite valor a ser localizado: "<\/span><\/span>);\n");
document.write("            if<\/span> (comeco ==<\/span> maxFila) {\n");
document.write("                int<\/span> aux = 0<\/span>;\n");
document.write("            } else<\/span> {\n");
document.write("                int<\/span> aux = comeco;\n");
document.write("                int<\/span> cont = 0<\/span>;\n");
document.write("                while<\/span> ((cont !=<\/span> total) &&<\/span> (valor !=<\/span> fila[aux])) {\n");
document.write("                    aux++<\/span>;\n");
document.write("                    cont++<\/span>;\n");
document.write("                    if<\/span> (aux ==<\/span> maxFila) {\n");
document.write("                        System<\/span>.out.println("<\/span>Não encontrado"<\/span><\/span>);\n");
document.write("                    } else<\/span> {\n");
document.write("                        System<\/span>.out.println("<\/span>Encontrado:  "<\/span><\/span> +<\/span> (cont +<\/span> 1<\/span>));\n");
document.write("                    }\n");
document.write("                }\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> 24/03/2010     <\/span>\n");
document.write("	//<\/span> Crie uma ED fila que ao receber a multiplicação dos valores cadastrados<\/span>\n");
document.write("	//<\/span> em 2 filas estáticas que possuem a mesma quantidade de dados<\/span>\n");
document.write("    public <\/span>void<\/span> Multiplica<\/span>(<\/span>) <\/span>{\n");
document.write("        int<\/span> maxFila2 = 0<\/span>;\n");
document.write("        int<\/span> comeco2 = 0<\/span>;\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            int<\/span>[] fila3 = new<\/span> int<\/span>[total];\n");
document.write("            if<\/span> (comeco ==<\/span> maxFila) {\n");
document.write("                int<\/span> aux = 0<\/span>;\n");
document.write("            } else<\/span> {\n");
document.write("                int<\/span> aux = comeco;\n");
document.write("            }\n");
document.write("            if<\/span> (comeco2 ==<\/span> maxFila2) {\n");
document.write("                int<\/span> aux2 = 0<\/span>;\n");
document.write("            } else<\/span> {\n");
document.write("                int<\/span> aux2 = comeco2;\n");
document.write("                int<\/span> cont = 0<\/span>;\n");
document.write("                while<\/span> (cont !=<\/span> total) {\n");
document.write("                    fila3[fim3] = (fila[aux] *<\/span> fila2[aux2]);\n");
document.write("                    aux++<\/span>;\n");
document.write("                    aux2++<\/span>;\n");
document.write("                    fim3++<\/span>;\n");
document.write("                    total3++<\/span>;\n");
document.write("                    if<\/span> (aux ==<\/span> maxFila) {\n");
document.write("                        aux = 0<\/span>;\n");
document.write("                    }\n");
document.write("                    if<\/span> (aux2 ==<\/span> maxFila) {\n");
document.write("                        aux2 = 0<\/span>;\n");
document.write("                        cont++<\/span>;\n");
document.write("                    }\n");
document.write("                }\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> Exemplo do caderno<\/span>\n");
document.write("	//<\/span> Desenvolva um método para apresentar o primeiro e o ultimo elemento da fila.<\/span>\n");
document.write("    public <\/span>void<\/span> Apresenta<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            System<\/span>.out.println("<\/span>Começo: "<\/span><\/span> +<\/span> fila[comeco] +<\/span> "<\/span> último: "<\/span><\/span> +<\/span> fila[fim -<\/span> 1<\/span>]);\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> 31/03/2010 <\/span>\n");
document.write("	//<\/span> Remova os elementos de uma pilha e uma fila simultaneamente,<\/span>\n");
document.write("	//<\/span> enquanto ambos estruturas forem iguais<\/span>\n");
document.write("    public <\/span>void<\/span> RemovePilhaFila<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> ((topo ==<\/span> 0<\/span>) ||<\/span> (total ==<\/span> 0<\/span>)) {\n");
document.write("            System<\/span>.out.println("<\/span>Fila ou pilha vazias"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            while<\/span> ((total ><\/span> 0<\/span>) &&<\/span> (topo ><\/span> 0<\/span>) &&<\/span> (pilha[topo -<\/span> 1<\/span>] ==<\/span> fila[comeco])) {\n");
document.write("                topo--<\/span>;\n");
document.write("                comeco++<\/span>;\n");
document.write("                total--<\/span>;\n");
document.write("                if<\/span> (comeco ==<\/span> maxFila) {\n");
document.write("                    comeco = 0<\/span>;\n");
document.write("                }\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> 31/03/2010 <\/span>\n");
document.write("    //<\/span> Considere uma agência de viagens, a qual trabalha com<\/span>\n");
document.write(" 	//<\/span> fila de espera. Considere o cliente cod 9783. Verifique <\/span>\n");
document.write("	//<\/span> em 2 filas, as quais este cliente esta cadastrado, qual<\/span>\n");
document.write("	//<\/span> apresenta a maior possibilidade de conseguir a passagem<\/span>\n");
document.write("    public <\/span>void<\/span> Localiza<\/span>(<\/span>) <\/span>{\n");
document.write("		if<\/span> (comeco1 ==<\/span> max) {\n");
document.write("			int<\/span> aux1 = 0<\/span>;\n");
document.write("		} else<\/span> {\n");
document.write("			int<\/span> aux1 = comeco1;\n");
document.write("		}\n");
document.write("		if<\/span> (comeco2 ==<\/span> max) {\n");
document.write("			int<\/span> aux2 = 0<\/span>;\n");
document.write("		} else<\/span> {\n");
document.write("			int<\/span> aux2 = comeco2;\n");
document.write("		}\n");
document.write("		int<\/span> cont1 = 0<\/span>;\n");
document.write("		int<\/span> cont2 = 0<\/span>;\n");
document.write("		while<\/span> (fila1[aux1] !=<\/span> 9783<\/span>) {\n");
document.write("			cont1++<\/span>;\n");
document.write("			aux1++<\/span>;\n");
document.write("			if<\/span> (aux1 ==<\/span> max) {\n");
document.write("				aux1 = 0<\/span>;\n");
document.write("			}\n");
document.write("		}\n");
document.write("		while<\/span> (fila2[aux2] !=<\/span> 9783<\/span>) {\n");
document.write("			cont2++<\/span>;\n");
document.write("			aux2++<\/span>;\n");
document.write("			if<\/span> (aux2 ==<\/span> max) {\n");
document.write("				aux2 = 0<\/span>;\n");
document.write("			}\n");
document.write("		}\n");
document.write("		if<\/span> (cont1 ><\/span> cont2) {\n");
document.write("			System<\/span>.out.println("<\/span>Fila 1 menor"<\/span><\/span>);\n");
document.write("		} else<\/span> if<\/span> (cont2 <<\/span> cont1) {\n");
document.write("			System<\/span>.out.println ("<\/span>Fila 2 menor"<\/span><\/span>);\n");
document.write("		} else<\/span> {\n");
document.write("			System<\/span>.out.println ("<\/span>Tanto faz"<\/span><\/span>);\n");
document.write("		}\n");
document.write("    }\n");
document.write("    //<\/span> 31/03/2010 <\/span>\n");
document.write("    //<\/span> Considere uma pilha a qual foi inserida de forma intermediária valores<\/span>\n");
document.write("	//<\/span> positivos e negativos altere a ED de forma a possuir somente os <\/span>\n");
document.write("	//<\/span> valores positivos. Não há a necessidade de manter a pilha original<\/span>\n");
document.write("    public <\/span>void<\/span> PilhaPositiva<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (topo ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Pilha esta vazia!!"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("			int<\/span> PilhaN<\/span> = new<\/span> Int<\/span>[(topo/<\/span>2<\/span>) +<\/span> 1<\/span>];\n");
document.write("			int<\/span> TopoN<\/span> = 0<\/span>;\n");
document.write("			while<\/span> (TopoN<\/span> ><\/span> 0<\/span>) {\n");
document.write("				if<\/span> (pilha[topo -<\/span> 1<\/span>] ><\/span> 0<\/span>) {\n");
document.write("					PilhaN<\/span>[TopoN<\/span>] = pilha[topo -<\/span>1<\/span>];\n");
document.write("					TopoN<\/span>++<\/span>;\n");
document.write("				}\n");
document.write("				topo--<\/span>;\n");
document.write("			}\n");
document.write("		}\n");
document.write("    }\n");
document.write("	//<\/span> Outro semestre<\/span>\n");
document.write("    //<\/span> Desenvolva um método para remover com exceção do <\/span>\n");
document.write("	//<\/span> primeiro, todos os outros elementos da fila<\/span>\n");
document.write("    public <\/span>void<\/span> RestaUm<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            total = 1<\/span>;\n");
document.write("            comeco = fim -<\/span> 1<\/span>;\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> Outro semestre<\/span>\n");
document.write("	//<\/span> Crie um método para apresentar todos os dados<\/span>\n");
document.write("	//<\/span> inseridos em uma fila (do primeiro ao ultimo)<\/span>\n");
document.write("    public <\/span>void<\/span> ApresentaTodos<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            int<\/span> aux = comeco;\n");
document.write("            int<\/span> cont = 0<\/span>;\n");
document.write("            while<\/span> (cont !=<\/span> total) {\n");
document.write("                if<\/span> (aux ==<\/span> maxFila) {\n");
document.write("                    aux = 0<\/span>;\n");
document.write("				}\n");
document.write("                System<\/span>.out.println("<\/span>Retorno:  "<\/span><\/span> +<\/span> fila[aux]);\n");
document.write("                aux++<\/span>;\n");
document.write("                cont++<\/span>;\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("	//<\/span> Outro semestre<\/span>\n");
document.write("	//<\/span> Se pilha e fila são formas de listas por que existem especifidades para ambas?<\/span>\n");
document.write("	//<\/span> Porque existem situações computacionais que exigem restrições.<\/span>\n");
document.write("	//<\/span> Ex. Pilha: CTRL + Z, voltar do browser, recurvidade.<\/span>\n");
document.write("	//<\/span> Ex. Fila: Impressora<\/span>\n");
document.write("    //<\/span> Outro semestre<\/span>\n");
document.write("	//<\/span> Desenvolva um método para preencher todas alocacoes vazias <\/span>\n");
document.write("	//<\/span> de uma ED tipo pilha com um determinado valor digitado pelo usuário<\/span>\n");
document.write("    public <\/span>void<\/span> PreencherPilha<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> maxPilha) {\n");
document.write("            System<\/span>.out.println("<\/span>Pilha vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            int<\/span> texto = Leitura<\/span>.readInteger("<\/span> Digite algo::"<\/span><\/span>);\n");
document.write("            while<\/span> (topo <<\/span> maxPilha) {\n");
document.write("                pilha[topo] = texto;\n");
document.write("                topo++<\/span>;\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> Outro semestre<\/span>\n");
document.write("	//<\/span> Crie um método para realizar o backup de uma lista ED tipo fila<\/span>\n");
document.write("    public <\/span>void<\/span> BackupFilaOutro<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            int<\/span> filaBackup[] = new<\/span> int<\/span>[total];\n");
document.write("            int<\/span> aux = comeco;\n");
document.write("            int<\/span> totalBackup = 0<\/span>;\n");
document.write("        	int<\/span> fimBackup = 0<\/span>;\n");
document.write("			while<\/span> (totalBackup !=<\/span> total) {\n");
document.write("                filaBackup[totalBackup] = fila[aux];\n");
document.write("                totalBackup++<\/span>;\n");
document.write("                aux++<\/span>;\n");
document.write("                fimBackup++<\/span>;\n");
document.write("                if<\/span> (aux ==<\/span> maxFila) {\n");
document.write("                    aux = 0<\/span>;\n");
document.write("                }\n");
document.write("                int<\/span> comecoBackup = 0<\/span>;\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("    //<\/span> Outro semestre<\/span>\n");
document.write("	//<\/span> Desenvolva um método para apresentar na sequência de remoção<\/span>\n");
document.write("	//<\/span> todos os dados inseridos em uma ED tipo fila estática<\/span>\n");
document.write("    public <\/span>void<\/span> apresentaFila<\/span>(<\/span>) <\/span>{\n");
document.write("        if<\/span> (total ==<\/span> 0<\/span>) {\n");
document.write("            System<\/span>.out.println("<\/span>Fila vazia"<\/span><\/span>);\n");
document.write("        } else<\/span> {\n");
document.write("            int<\/span> cont = comeco;\n");
document.write("            int<\/span> aux = 0<\/span>;\n");
document.write("            while<\/span> (aux !=<\/span> total) {\n");
document.write("                if<\/span> (cont ==<\/span> maxFila) {\n");
document.write("                    cont = 0<\/span>;\n");
document.write("                    System<\/span>.out.println("<\/span>Apresenta Fila"<\/span><\/span> +<\/span> fila[cont]);\n");
document.write("                    cont++<\/span>;\n");
document.write("                    aux++<\/span>;\n");
document.write("                }\n");
document.write("            }\n");
document.write("        }\n");
document.write("    }\n");
document.write("}\n");
document.write("<\/pre>\n");
document.write("