-
Notifications
You must be signed in to change notification settings - Fork 0
/
lista dinamica sem repeticoes e invertida.java
129 lines (108 loc) · 3.36 KB
/
lista dinamica sem repeticoes e invertida.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
class NoLista{
int valor;
NoLista proximo;
NoLista ultimo;
NoLista(int valor){
this.valor = valor;
}
NoLista(int valor, NoLista ultimo){
this.valor = valor;
this.ultimo = ultimo;
}
}
class ListaDinamica{
private NoLista valores;
private int quantidade;
public boolean isEmpty(){
return quantidade==0;
}
boolean consultar(int valor, NoLista tempo){
boolean r = false;
NoLista temp = tempo;
while(temp!=null){
if(temp.valor == valor){
r=true;
break;
}else{
temp = temp.proximo;
}
}
return r;
}
public void add(int valor){
if(isEmpty()){
valores = new NoLista(valor);
}else{
NoLista temp = valores;
while(temp.proximo!=null){
temp = temp.proximo;
}
temp.proximo = new NoLista(valor, temp);
}
quantidade++;
}
public void add(int valor, NoLista tempo){
NoLista temp = tempo;
while(temp.proximo!=null){
temp = temp.proximo;
}
temp.proximo = new NoLista(valor, temp);
quantidade++;
}
public void print(){
NoLista temp = valores;
while(temp.proximo!=null){
temp = temp.proximo;
if(temp.proximo == null){
NoLista invertida = new NoLista(temp.valor);
while(temp!=null){
if(!consultar(temp.valor,invertida)){
add(temp.valor,invertida);
}
temp = temp.ultimo;
}
while(invertida!=null){
System.out.print(invertida.valor + " ");
invertida = invertida.proximo;
}
break;
}
}
}
public ListaDinamica listaNova() {
return this;
}
}
public class Solution{
public static void main(String[] args) throws IOException{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(bufferedReader.readLine().trim());
int b = Integer.parseInt(bufferedReader.readLine().trim());
int c = Integer.parseInt(bufferedReader.readLine().trim());
int d = Integer.parseInt(bufferedReader.readLine().trim());
int e = Integer.parseInt(bufferedReader.readLine().trim());
int f = Integer.parseInt(bufferedReader.readLine().trim());
int g = Integer.parseInt(bufferedReader.readLine().trim());
ListaDinamica lista = new ListaDinamica();
//adicionar os valores na lista
lista.add(a);
lista.add(b);
lista.add(c);
lista.add(d);
lista.add(e);
lista.add(f);
lista.add(g);
//printar nova lista
lista.listaNova().print();
bufferedReader.close();
}
}