Java - AYUDA CON NODOS EN JAVA

 
Vista:
Imágen de perfil de RUBEN

AYUDA CON NODOS EN JAVA

Publicado por RUBEN (1 intervención) el 03/10/2017 17:19:56
HOLA TENGO ESTAS CLASES Y NECESITO UNA CLASE QUE INVOQUE LOS NODOS AYUDA POR FAVOR

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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
public class Nodo {
	Object dato;
	Nodo siguente;
	public Nodo(Object dato, Nodo siguiente) {
		this.dato=dato;
		this.siguente=siguente;
	}
 
}
 
//-------------------------------------------------------------------------------------------------------------
 
 
public class Lista {
	private Nodo primero;
 
	public Lista() {
	//crar lista vacia
		primero=null;
	}
 
	public boolean vacia(){
		//regreso true si la lista esta vacia 
		//de lo conrario regresa false
		return primero==null;
 
	}
	public Nodo inicio(){
		//regresar la primwera posicion de la lista
		return primero;
	}
 
	public Nodo fin(){
		//regresa la ultima posicion de la lista 
		Nodo i=primero;
		if(!vacia()){
			while(i.siguente !=null)
				i = i.siguente;
 
		}
		return i;
	}
 
	public Nodo encuentra(Object x){
		//regresa la posicion dek elemento x
		//si x no existe, llegara al final de la lista
		//y por lo tanto regresara null
		Nodo i=primero;
		while (i !=null){
			if(i.dato.equals(x))
				return i;
				i = i.siguente;
 
			}
			return i;
		}
	public Object obtenDato(Nodo p){
		//regresa el dato que esta en la posicion p
		//si p es null regresa null
		if (p != null)
			return p.dato;
		else
			return null;
	}
	public Nodo anterior(Nodo p){
		//regresa la posicion anterior a p
		Nodo actual = primero;
		Nodo anterior = null;
 
		if(vacia() || p==primero)
			return null;
 
		if(p!= null){
			while (actual !=null && !actual.equals(p)){
				anterior = actual;
				actual = actual.siguente;
			}
		}
		return anterior;
 
	}
 
	public Nodo siguiente(Nodo p){
		//si p es diferente de null 
		//regresa la posicion siguiente a p
		//de lo contrario regresa null
		if(p !=null)
			return p.siguente;
		else
			return p;
 
	}
	public void insertaInicio(Object x){
		//inserta el elemento x al inicio
		primero = new Nodo(x,primero);
	}
	public void insertarFin(Object x){
		//inserta al final
		Nodo temp = new Nodo(x,null);
		if (vacia())
			primero = temp;
		else
			fin().siguente= temp;
	}
	public void insertar(Object x, Nodo p){
		//insertar al elemento x despues de la posicion p 
		if(vacia() || p==null){
			//cuando la lista esta vacia o se
			//requiere insertar despues del nodo p
			p.siguente = new Nodo(x,p.siguente);
		}
	}
 
	public void borra(Object x){
		//si existe el elemento lo elimina 
		Nodo i=encuentra(x);
		if(i!=null && i!=inicio()){
			anterior(i).siguente = i.siguente;
			i.siguente=null;
		}
		else if(i!=null && i==inicio()){
			Nodo temp = primero;
			primero = primero.siguente;
			i.siguente=null;
			temp.siguente = null;
		}
	}
 
	public String toString(){
		//convierte la lista a string
		String texto="[";
		Nodo temp = primero;
		if(!vacia()){
			texto += temp.dato;
			temp = temp.siguente;
		}
		while(temp !=null){
			texto = texto + ", " + temp.dato;
			temp = temp.siguente;
 
		}
		texto +="]";
		return texto;
	}
}
 
//---------------------------------------------------------------------------------------------------
ME FALTA UNA CLASE PARA EJECUTAR PERO NO ME SALE :C
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