
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
ME FALTA UNA CLASE PARA EJECUTAR PERO NO ME SALE :C
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;
}
}
//---------------------------------------------------------------------------------------------------
Valora esta pregunta


0