Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class l6q3 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Scanner in = new Scanner (System.in);
- Metodo metodo = new Metodo ();
- String nome = "";
- String contatinho = "";
- String position = "";
- int posicaoInt = 0;
- while (in.hasNext()) {
- nome = in.next();
- position = in.nextLine();
- //inserindo na lista
- metodo.colocar(nome, position);
- }
- //enquanto a lista não retornar nulo, continuaremos associando as posicoes com os nomes
- while (metodo.nome != null) {
- position = metodo.posicao;
- if (metodo.proximo.procurar(position) == null) {
- //forever alone
- System.out.printf("%s nao existe um parceiro para voce.\n", metodo.nome);
- metodo.remover(metodo.nome, position);
- } else {
- //procurando o nome do contatinho na lista
- contatinho = metodo.proximo.procurar(position);
- //agora, procurando a posicao do contatinho pra associar com a sua
- posicaoInt = metodo.proximo.achandoPosicao (contatinho, position, 1);
- System.out.printf("%s seu parceiro esta na posicao %d e o seu nome e %s.\n", metodo.nome, posicaoInt, contatinho);
- //agora que um casal já foi feito, vamso removê-lo da lista
- metodo.remover(contatinho, metodo.posicao);
- metodo.remover(metodo.nome, metodo.posicao);
- }
- }
- }
- }
- class Metodo {
- String nome;
- String posicao;
- Metodo proximo;
- //construtor
- public Metodo () {
- this.nome = null;
- this.posicao = null;
- this.proximo = null;
- }
- public void colocar (String nome, String posicao) {
- //inicializando
- if (this.nome == null) {
- this.nome = nome;
- this.posicao = posicao;
- this.proximo = new Metodo ();
- } else {
- this.proximo.colocar(nome, posicao);
- }
- }
- public void remover (String nome, String posicao) {
- if (this.nome.equals(nome) && this.posicao.equals(posicao)) {
- this.nome = this.proximo.nome;
- this.posicao = this.proximo.posicao;
- this.proximo = this.proximo.proximo;
- } else {
- this.proximo.remover(nome, posicao);
- }
- }
- //
- public int achandoPosicao (String nome, String posicao, int contador) {
- if (this.posicao.equals(posicao) && this.nome.equals(nome)) {
- return contador;
- } else {
- contador++;
- return this.proximo.achandoPosicao(nome, posicao, contador);
- }
- }
- //procurando se existe o id igual ao position lá do main
- public String procurar (String posicao) {
- if (this.nome != null && this.posicao.equals(posicao)) {
- return this.nome;
- } else if (this.nome == null) {
- return null;
- } else {
- return this.proximo.procurar(posicao);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement