Java - Consulta sobre listas en enlazadas

   
Vista:

Consulta sobre listas en enlazadas

Publicado por G (1 intervención) el 05/06/2016 21:21:37
Buenas. Qué tal??
Tengo una consulta con respecto a un ejercicio de listas enlazadas.
La consigna es hacer una clase NodoInt, para represetar los nodos de una lista en enlazada de enteros, y una clase ListaInt para representar la dicha lista.
He aquí mis clases por el momento:

Clase NodoInt
1
2
3
4
5
6
public class NodoInt {
 
	int elemento;
	NodoInt siguiente;
 
}

Clase ListaInt
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
public class ListaInt {
 
NodoInt primero;
 
	void imprimir(){
		NodoInt actual=primero;
		while(actual!=null){
			System.out.print(actual.elemento+" ");
			actual=actual.siguiente;
		}
	}
 
	int largo(){
		if(primero==null){
			return 0;
		}
		int longitud=0;
		NodoInt actual=primero;
		while(actual!=null){
			longitud++;
			actual=actual.siguiente;
		}
		return longitud;
	}
 
	boolean estaVacia(){
		if(primero==null){
			return true;
		}
		return false;
	}
 
	int suma(){
		if(primero==null){
			return 0;
		}
		int suma=0;
		NodoInt actual=primero;
		while(actual!=null){
			suma=suma+actual.elemento;
			actual=actual.siguiente;
		}
		return suma;
	}
 
	int promedio(){
		if(primero==null){
			return 0;
		}
		int suma=0;
		int cantidad=0;
		NodoInt actual=primero;
		while(actual!=null){
			cantidad++;
			suma=suma+actual.elemento;
			actual=actual.siguiente;
		}
		return (suma/cantidad);
	}
 
	int iesimo(int i){
		int indice=0;
		NodoInt actual=primero;
		while(actual!=null){
			if(indice==i){
				return actual.elemento;
			}
			indice++;
			actual=actual.siguiente;
		}
		return -1;
	}
 
	int maximo(){
		int elementoActual=-1;
		NodoInt actual=primero;
		while(actual!=null){
			if(actual.elemento>elementoActual){
				elementoActual=actual.elemento;
			}
			actual=actual.siguiente;
		}
		return elementoActual;
	}
 
	boolean estaOrdenada(){
		if(primero==null){
			return true;
		}
		int elementoActual=-1;
		NodoInt actual=primero;
		while(actual!=null){
			if(actual.elemento>=elementoActual){
				elementoActual=actual.elemento;
				actual=actual.siguiente;
			}
			else{
				return false;
			}
		}
		return true;
	}
 
	void rotarDerecha(){
		NodoInt actual=primero;
		int elementoActual=actual.elemento;
		int aux=-1;
		while(actual!=null){
			if(actual.siguiente==null){
				aux=actual.elemento;
				actual.elemento=elementoActual;
			}
			actual=actual.siguiente;
		}
		primero.elemento=aux;
	}

Lo siguiente que tengo que agregarle a ListaInt es una función "boolean esSinDuplicados()" que informa si la lista no tiene elementos repetidos. Me imagino que necesito algo así como un doble ciclo pero no me sale con este tipo de listas.
Cualquier tip que me puedan tirar es muy agradecido. Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alexis

Consulta sobre listas en enlazadas

Publicado por Alexis (15 intervenciones) el 08/06/2016 06:55:31
Hola mira te paso mi proyecto es de listas enlazadas dobles, te va a servir para los próximos ejercicios que tengas, y tambien utilizo esos metodos, obvio con otros nobres, pero hace lo mismo, espero te funcioe
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar