Java - ejercicio de colas de prioridad

 
Vista:

ejercicio de colas de prioridad

Publicado por Marco (1 intervención) el 16/10/2018 04:04:40
URGENTE !!!!!!!! necesito ayuda con este programa lo que nececito esq dependiendo de la prioridad donde B es la mas alta luego A y por ultimo C me muestre de manera ordenada los nombres que introduzca, tambien por ejemplo si meti 3 B me los tiene que mostrar en el orden que los introduci y asi tambien con C y B

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
public class marco {
	int pos;
	String beca[];
	char vec[];
 
	public marco(int tam) {
		beca=new String[tam];
		vec=new char[tam];
		pos=-1;
		for(int y=0;y<vec.length;y++)
			vec[y]='+';
	}
 
	public boolean isEmpty() {
		if(pos==-1)return true;
		return false;
	}
 
	public void Formar(String persona,char pri) {
		try {
		    beca[++pos]=persona;
		    vec[pos]=pri;
		}catch(ArrayIndexOutOfBoundsException e) {
			System.out.println("la fila esta llena");
			pos--;
		}
	}
	public void FormarP(String persona,char prioridad) {
		if(isEmpty()) {
			Formar(persona,prioridad);
		}else {
			if(pos+1==beca.length)
				System.out.println("fila llena");
			else{
				if(prioridad=='b'){
 
					for(int i=0;i<beca.length;i++){
						if(i+1==beca.length && vec[i]=='b'){
							Formar(persona,prioridad);
							break;
						}
						if(vec[i]!='b'){
							for(int x=i;x>=i;x--){
								if(x+1!=pos){
								beca[x+1]=beca[x];
								}
							}
							beca[i]=persona;
							vec[i]=prioridad;
							pos++;
							break;
						}
					}
 
				}else{
					if(prioridad=='a'){
						for(int i=0;i<beca.length;i++){
							if(i+1==beca.length){
								Formar(persona,prioridad);
								break;
							}
							if(vec[i]!='a' && vec[i]!='b'){
								for(int x=i;x>=i;x--){
									if(x+1!=pos){
										beca[x+1]=beca[x];
									}
								}
								beca[i]=persona;
								vec[i]=prioridad;
								pos++;
								break;
							}
						}
					}else{
						Formar(persona,prioridad);
					}
				}
			}
 
		}
	}
	public void MostrarFila() {
		if(!isEmpty()) {
			System.out.println("El contenido de la fila es: ");
			for(int i=0;i<=pos;i++)
				System.out.print("["+beca[i]+"]"+" ");
 
		}else
			System.out.println("Fila Vacia");
	}
	public static void main(String[] args) {
		marco obj=new marco(6);
		obj.FormarP("elmo", 'c');
		obj.FormarP("Poo", 'c');
		obj.FormarP("hector",'c');
		obj.FormarP("pancho", 'c');
		obj.FormarP("terry", 'b');
		obj.FormarP("esteban", 'b');
		obj.MostrarFila();
	}
 
}
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