Programación General > Java
Muchas dudas
m0skit0:
Supongo que encolar() mete un elemento al final de la cola y desencolar() saca uno del comienzo. Para devolver una parte de la cola (siendo indice el indicador de hasta qué posición de la cola (ésta incluída) vamos a devolver) invertida hacemos (con recursividad):
--- Código: Java ---public static ColaVectorImpl<String> AntesDe_Invertida (ColaVectorImpl <String> c, int indice) { String strtemp; if (c.estaVacio() || indice <= 0) return new ColaVectorImpl <String>(); else { strtemp = c.desencolar(); return AntesDe_Invertida(c, indice-1).encolar(strtemp); }}
Ahora para hacer lo mismo pero con la parte de la cola posterior a indice (esta posición sin incluir), podemos hacer:
--- Código: Java ---public static ColaVectorImpl<String> DespuesDe (ColaVectorImpl <String> c, int indice) { if (c.estaVacio() || indice <= 0) return c; else { c.desencolar(); return DespuesDe(c, indice-1); }}
Dado que este método no devuelve la cola ya invertida, necesitamos una función de inversión (de nuevo, con recursividad):
--- Código: Java ---public static ColaVectorImpl<String> InvertirCola (ColaVectorImpl <String> c) { String strtemp; if (c.numElems()<= 1) return c; else { strtemp = c.desencolar(); return InvertirCola(c).encolar(strtemp); }}
Dado que mi nivel de Java es bastante precario (por no decir inexistente :( ), disculpa mis errores de sintaxis. Aparte, no estoy seguro de si estos métodos modifican las colas pasadas como parámetro (creo que sí, prueba a ver).
Disculpa también :argh: que no pueda probar el código, es que no tengo instalado Java SDK en el trabajo :bad: .
thepunishercadiz:
Tio muchas gracias!
Ayer no pude conectarme y acabo de ver tu mensaje. Lo probaré esta tarde a ver qué pasa.
De nuevo muchísimas gracias!!!
jotron:
Hola moskito tengo un problema parecido o casi igual lo unico que en vez de cadenas es con números
en el método main es cuando me hago un lío
la primera vez que llamamos a las funciones recursivas lo hace bien porque lo guardo en dos colas cola1 con la primera parte y cola2 con la segunda parte e invierto, ahora bien, la segunda vez me salen 4 colas la tercera 8 colas y la cuarta 16 colas, esto es un chapú no??? como podría implementar el main para hacer las llamadas a las funciones recursivas y que me lo vaya haciendo la inversión????
gracias de antetodo
jotron:
--- Cita de: "jotron" ---Hola moskito tengo un problema parecido o casi igual lo unico que en vez de cadenas es con números
en el método main es cuando me hago un lío
la primera vez que llamamos a las funciones recursivas lo hace bien porque lo guardo en dos colas cola1 con la primera parte y cola2 con la segunda parte e invierto, ahora bien, la segunda vez me salen 4 colas la tercera 8 colas y la cuarta 16 colas, esto es un chapú no??? como podría implementar el main para hacer las llamadas a las funciones recursivas y que me lo vaya haciendo la inversión????
gracias de antetodo
--- Fin de la cita ---
m0skit0:
--- Cita de: "jotron" ---esto es un chapú no???
--- Fin de la cita ---
--- Cita de: "jotron" ---lo guardo en dos colas cola1 con la primera parte y cola2 con la segunda parte e invierto, ahora bien, la segunda vez me salen 4 colas la tercera 8 colas y la cuarta 16 colas
--- Fin de la cita ---
No te comprendo... :wacko:
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa