Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda ejercicio Lista Circulares

El ejercicio trata de:

Se realizara un programa para atencion de una clinica

Los paciente debe tener 3 atributos Prioridad, Ficha y nombre

Los nodos de la lista deben guardar un atributo de tipo paciente con la informacion anteriror

Los pacientes se ordenran en la lista de acuerdo a la prioridad siendo 1 la de mayor prioridad

Si existe mas de un paciente con la misma prioridad se ordenara por el numero de ficha


NO se puede insertar mas de un paciente con la misma prioridad y ficha.
--------------------------------------------------------------------------------------------------------------------------------------------------

Ya tengo adelantado una parte pero el problema esta cuando la prioridades son las mismas y debo ordenar con el numero de ficha.

**ESTA ES LA CLASE PACIENTE:

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
public class Paciente {

private int prioridad;
private int ficha;
private String nombre;

public Paciente(int prioridad, int ficha, String nombre) {
this.prioridad = prioridad;
this.ficha = ficha;
this.nombre = nombre;
}

public int getPrioridad() {
return prioridad;
}

public void setPrioridad(int prioridad) {
this.prioridad = prioridad;
}

public int getFicha() {
return ficha;
}

public void setFicha(int ficha) {
this.ficha = ficha;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

@Override
public String toString() {
return "Paciente{" + "prioridad=" + prioridad + ", ficha=" + ficha + ", nombre=" + nombre + '}';
}



}


**ESTA ES LA CLASE NODO:

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
public class Nodo {

private Paciente dato;
private Nodo next;

public Nodo(Paciente dato) {
this.dato = dato;
}

public Paciente getDato() {
return dato;
}

public void setDato(Paciente dato) {
this.dato = dato;
}

public Nodo getNext() {
return next;
}

public void setNext(Nodo next) {
this.next = next;
}

@Override
public String toString() {
return "Nodo{" + "dato =" + dato + '}' + "\n";
}

}

**Y ESTA LA CLASE LISTA

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
public class Lista {

private Nodo cabeza;
private Nodo ultimo;

public void inserta(Paciente p) {

if (cabeza == null) {

cabeza = new Nodo(p);
ultimo = cabeza;
ultimo.setNext(cabeza);
} else {

if (p.getPrioridad() <cabeza.getDato().getPrioridad()) {

Nodo aux = new Nodo(p);
aux.setNext(cabeza);
cabeza = aux;
ultimo.setNext(cabeza);

} else {

if (p.getPrioridad() > ultimo.getDato().getPrioridad()) {

Nodo aux = new Nodo(p);
ultimo.setNext(aux);
ultimo = aux;
ultimo.setNext(cabeza);
} else {

Nodo aux = cabeza;

while (p.getPrioridad() > aux.getNext().getDato().getPrioridad()) {
aux = aux.getNext();

}
Nodo temp = new Nodo(p);
temp.setNext(aux.getNext());
aux.setNext(temp);
aux = aux.getNext();


}




}

}


}

public String toString() {

String msj = "";
Nodo aux = cabeza;
if (aux != null) {
msj += aux;
aux = aux.getNext();
while (aux != cabeza) {
msj += aux;
aux = aux.getNext();
}
} else {
msj = "Lista vacia";
}
return msj;
}

}

febrero 24, 2017 | Unregistered CommenterPedro rodriguez