Java - Necesito ayuda Urgente en Java

   
Vista:

Necesito ayuda Urgente en Java

Publicado por Tanausú (3 intervenciones) el 04/04/2011 13:09:17
Buenos días, necesito ayuda urgente por favor, tengo que hacer un proyecto en Java para dentro de 2 semanas y se me acaba el tiempo y no se hacerlo. Alguien sabría hacer el codigo del siguiente enunciado:


Desarrollar un TAD (clase) en java que implemente un arbol jd, se emplea cuando la información almacenada en los nodos tiene mas de una dimensión, en nuestro caso se almacenaran ristras de caracteres (alfabeto español), asi las dimensiones seran todos y cada uno de los caracteres del alfabeto, y para cada ristra almacenada, el valor de cada dimensión sera la frecuencia de aparición de cada caracter. En el arbol hay dos tipos de nodos, unos internos, que discriminan para la ordenación y que almacenan el caracter empleado para discriminar y un vector de 10 enlaces, correspondiendo a las frecuencias de 0 a 9 de dicho caracter y un vector de 10 enlaces que apuntan, si es necesario, a una lista simplemente encadenada con las palabras almacenadas ( nodos de información).

Se refiere a un arbol trie, por lo que tengo entendido. Sabrían hacerlo, es muy importante, por favor.

Muchas Gracias
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

Necesito ayuda Urgente en Java

Publicado por javier (41 intervenciones) el 05/04/2011 03:06:30
Despues voy y te barro la casa... y te limpio el baño...

ponete a estudiar pibe...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito ayuda Urgente en Java

Publicado por Carlos Rauda (2 intervenciones) el 06/04/2011 00:54:04
Hola man, no creo que lo mejor sea pedir el codigo ya hecho, contrario de eso podría ayudarte a analizar el problema para que lo entiendas mejor y así puedas hacer el codigo, lo importante es aprender.

Para empezar los TAD (Tipos Abstractos de Datos) tiene estas propiedades:
– Encapsulamiento: La información referente a la definición del tipo y todas las operaciones que pueden realizarse sobre el mismo se encuentran en el mismo lugar.
– Ocultación de Información: La información acerca de la implementación se encuentra oculta al usuario.

Luego te dice que quieren que implementes un arbol jd (java dinamic) en pocas palabras que se vaya llenando a medida que se van introduciendo los datos y no dejarlo hardcodeado como lo haría un niño de kinder. Ahi agrega que es un arbol de con nodos de mas de una dimensión, eso quiere decir que no es un arbol binario, sino miralo más como un diagrama organizacional, puede haber más de 2 nodos hijos.

Te dice que se almacenaran ristras de caracteres (o lo que muchos llaman arrays de caracteres) por lo cual unicamente necesitas ir asignando texto.

Yo en jsf manejo de esta forma el tree, quizá te sirva de referencia (esto solo es un ejemplo hardcodeado, ahi debes ver como "dinamizarlo"):

Tree tr = new Tree();
TreeNode nodo = new TreeNode();
nodo.setText("loqueseteocurra");
nodo.setUrl("http://www.lawebdelprogramador.com/news/1259900/Necesito_ayuda_Urgente_en_Java.html#i1259900");
tr.setText("Titulo del Arbol");
tr.getChildren().add(nodo);


Acá un ejemplo un poco más completo (hecho en Visual Java Server Faces e Hibernate en NetBeans 6.7.1):

// Hyperlink hl;
// agregas un compente hyperlinkl para que sea tus link verdad
ImageHyperlink ihl;
/// creas tu tree nod tipo como se hacen enb swing bueno asi es como se hace en swing
Tree tr = new Tree();
// los nodos que lleva dentro el tree nood

TreeNode nodo = new TreeNode();
nodo = new TreeNode();

// asiganas tu variable al panel layaout ya esta definida arriva cuando bindias el componente pero aqui se la puse otra vbes
// para no usar la de arriva
PanelLayout pl = this.getLayoutPanel1();
// va aqui esta la onda yo lo ice asi como ejemplo pero vos te podes hacer una lista que se llene desde la base
// dependiendo que qures que se muestres
// llenas la lista con las opcuiones y te haces el iterator tipo al que esta aqui abajo

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Session sess = null;
int count = 0;
try {

Categoriaproducto ret = null;
Transaction tx = null;

session = InitSessionFactory.getInstance().getCurrentSession();
List<String> op = new ArrayList<String>();
List<String> idcats = new ArrayList<String>();
try {
tx = session.beginTransaction();
List<Categoriaproducto> lista = (List<Categoriaproducto>) session.createQuery("select u from Categoriaproducto as u").list();
for (Categoriaproducto usuario : lista) {

op.add(usuario.getNombre());
idcats.add(usuario.getIdCategoria().toString());
}
tx.commit();

} catch (HibernateException e) {
e.printStackTrace();
if (tx != null && tx.isActive()) {
tx.rollback();
}
}

Iterator it = op.iterator();
Iterator it2 = idcats.iterator();
int i = 1;
while (it.hasNext()) {

// dentro del while te llenas el menu de treenode
String nombre = (String) it.next();
Integer idc = Integer.parseInt(it2.next().toString());
ihl = new ImageHyperlink();
nodo = new TreeNode();
nodo.setText(nombre);

// el titulo de tu menu
tr.setText("Titulo Del Arbol");

tr.getChildren().add(nodo);
session = InitSessionFactory.getInstance().getCurrentSession();
// obetener los nodos de tu menu osea los que tenes en tu lista
// en realidad este seria como el titulo de cada sub menu
session.beginTransaction();
session = InitSessionFactory.getInstance().getCurrentSession();
List<String> prods = new ArrayList<String>();
List<String> idprod = new ArrayList<String>();
tx = session.beginTransaction();
List<Producto> lista = (List<Producto>) session.createQuery("select u from Producto as u where u.categoriaproducto=" + idc).list();
for (Producto prod : lista) {

prods.add(prod.getNombre());
idprod.add(prod.getIdProducto().toString());

}
tx.commit();
Iterator it3 = prods.iterator();
Iterator it4 = idprod.iterator();
while (it3.hasNext()) {
TreeNode nodo2 = new TreeNode();
String npro = (String) it3.next();
String ipro = (String) it4.next();
nodo2.setText(npro);
nodo2.setStyle("font-weigth:bold; color:blue; background-color:#C9D9C9;");
nodo2.setUrl("/faces/cliente/catalogo.jsp?idProducto=" + ipro);
nodo.getChildren().add(nodo2);
}



nodo.setExpanded(true);// para que se expnadible la propiedad ya lo dice va
tr.getChildren().add(nodo);// y agregas todo a tu tree
// y al final agregas el tree al panel layout que sera tu contenedor ok

pl.getChildren().add(tr);
}
} catch (Exception e) {
System.out.println(e.getMessage());
Label a = new Label();
a.setText(e.getMessage().toString());
pl.getChildren().add(a);
}


Obviamente este codigo unicamente funciona con los objetos y las clases creadas dentro de mi sistema por lo cual copiar y pegar no te servirá de nada, solo usalo de referencia.

Suerte (Y).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar