Tengan un buen día, futuros colegas jeje ;) Bueno les explico mi gran problema. Soy nuevo en esto de la programación y tengo un proyecto el cual consiste en insertar datos (nombres) en un árbol y al escribir la palabra Terminar este se detenga y me acomode los nombres en orden alfabético. Ya logre resolver el ingreso de la palabra Terminar. Lo que no he podido hacer es el orden alfabético. De paso quisiera saber si ustedes conocen un buen canal en youtube o una buena pagina para aprender a programar en netbeans. Se los agradecería todavía mas ;) Este es mi código: import java.text.Collator; import java.util.Locale; import javax.swing.JOptionPane;
/** * * @author StevenHause */ public class Examen3 {
/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Arbol arbol = new Arbol(); Arbol arbolito = new Arbol(); int valor; String Dato=""; String fin = "Terminar";
System.out.println("Se le solicitará los nombres para incluir en el árbol."); System.out.println("Insertando los siguientes nombres: ");
do{ Dato = JOptionPane.showInputDialog("Escriba el nombre " + " para colocar en el Arbol"); System.out.print(Dato + " "); arbol.insertarNodo(Dato);
} while(!Dato.equals(fin));
System.out.println("\n\nRecorrido Preorden");
arbol.recorridoPreorden();
}
}
import java.text.Collator;
/** * * @author StevenHause */ public class Nodo {
String dato ; Nodo nodoIzquierdo; Nodo nodoDerecho;
public Nodo (String Nodo) { dato = Nodo; nodoIzquierdo = nodoDerecho = null; }
public synchronized void insertar(String valor) {
if(!valor.equals("Terminar")) {
if(nodoIzquierdo == null) nodoIzquierdo = new Nodo(valor); else nodoIzquierdo.insertar(valor);
} else if(valor == null) {
if(nodoDerecho == null) nodoDerecho = new Nodo(valor); else nodoDerecho.insertar(valor); }
}} class Arbol { private Nodo raiz;
public Arbol() { raiz = null; }
public synchronized void insertarNodo(String valorInsertar) { if(raiz == null) raiz = new Nodo(valorInsertar); else raiz.insertar(valorInsertar);
}
public synchronized void recorridoPreorden() { ayudantePreorden(raiz); }
public static void sortStrings(Collator collator, String[] Datos) { String tmp; for (int i = 0; i < Datos.length; i++) { for (int j = i + 1; j < Datos.length; j++) { // Compare elements of the array two at a time. if (collator.compare(Datos[i], Datos[j] ) > 0 ) { // Swap words[i] and words[j] tmp = Datos[i]; Datos[i] = Datos[j]; Datos[j] = tmp; } } } }
Tengan un buen día, futuros colegas jeje ;)
Bueno les explico mi gran problema.
Soy nuevo en esto de la programación y tengo un proyecto el cual consiste en insertar datos (nombres) en un árbol y al escribir la palabra Terminar este se detenga y me acomode los nombres en orden alfabético.
Ya logre resolver el ingreso de la palabra Terminar.
Lo que no he podido hacer es el orden alfabético.
De paso quisiera saber si ustedes conocen un buen canal en youtube o una buena pagina para aprender a programar en netbeans.
Se los agradecería todavía mas ;)
Este es mi código:
import java.text.Collator;
import java.util.Locale;
import javax.swing.JOptionPane;
/**
*
* @author StevenHause
*/
public class Examen3 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Arbol arbol = new Arbol();
Arbol arbolito = new Arbol();
int valor;
String Dato="";
String fin = "Terminar";
System.out.println("Se le solicitará los nombres para incluir en el árbol.");
System.out.println("Insertando los siguientes nombres: ");
do{
Dato = JOptionPane.showInputDialog("Escriba el nombre " + " para colocar en el Arbol");
System.out.print(Dato + " ");
arbol.insertarNodo(Dato);
}
while(!Dato.equals(fin));
System.out.println("\n\nRecorrido Preorden");
arbol.recorridoPreorden();
}
}
import java.text.Collator;
/**
*
* @author StevenHause
*/
public class Nodo {
String dato ;
Nodo nodoIzquierdo;
Nodo nodoDerecho;
public Nodo (String Nodo)
{
dato = Nodo;
nodoIzquierdo = nodoDerecho = null;
}
public synchronized void insertar(String valor)
{
if(!valor.equals("Terminar"))
{
if(nodoIzquierdo == null)
nodoIzquierdo = new Nodo(valor);
else
nodoIzquierdo.insertar(valor);
} else if(valor == null)
{
if(nodoDerecho == null)
nodoDerecho = new Nodo(valor);
else
nodoDerecho.insertar(valor);
}
}}
class Arbol
{
private Nodo raiz;
public Arbol()
{
raiz = null;
}
public synchronized void insertarNodo(String valorInsertar)
{
if(raiz == null)
raiz = new Nodo(valorInsertar);
else
raiz.insertar(valorInsertar);
}
public synchronized void recorridoPreorden()
{
ayudantePreorden(raiz);
}
private void ayudantePreorden(Nodo nodo)
{
if(nodo == null)
return;
System.out.print(nodo.dato + " ");
ayudantePreorden(nodo.nodoIzquierdo);
ayudantePreorden(nodo.nodoDerecho);
}
public synchronized void recorridoInorden()
{
ayudanteInorden(raiz);
}
//meoto recursivo para recorrido inorden
private void ayudanteInorden(Nodo nodo)
{
if(nodo == null)
return;
ayudanteInorden(nodo.nodoIzquierdo);
System.out.print(nodo.dato + " ");
ayudanteInorden(nodo.nodoDerecho);
}
//EMPEZAR RECORRIDO PORORDEN
public synchronized void recorridoPosorden()
{
ayudantePosorden(raiz);
}
//meotod recursivo para recorrido posorden
private void ayudantePosorden(Nodo nodo)
{
if( nodo == null )
return;
ayudantePosorden(nodo.nodoIzquierdo);
ayudantePosorden(nodo.nodoDerecho);
System.out.print(nodo.dato + " ");
}
public static void sortStrings(Collator collator, String[] Datos) {
String tmp;
for (int i = 0; i < Datos.length; i++) {
for (int j = i + 1; j < Datos.length; j++) {
// Compare elements of the array two at a time.
if (collator.compare(Datos[i], Datos[j] ) > 0 ) {
// Swap words[i] and words[j]
tmp = Datos[i];
Datos[i] = Datos[j];
Datos[j] = tmp;
}
}
}
}
// static void alfabeticamente(String [] alf){
//
//int tamaño = alf.length;
//
//for(int pase = 0 ; pase < tamaño ; pase++ ){
//
//for (int i = 0 ; i < tamaño - 1 - pase ; i++ ){
//
//if( alf[i].compareTo (alf[i + 1 ])> 0){
//String actual;
//actual=alf[i];
//alf[i]=alf[i+1];
//alf[i+1]=actual;
//
}