Exceptio in thread "main" java.lang.StackOverflowError
Hola buenas tengo terminado mi proyecto pero cuadno compilo me sale lo siguiente:
Exception in thread "main" java.lang.StackOverflowError
at arboljd.Node.<init>(Main.java:14)
at arboljd.NList.<init>(Main.java:9)
at arboljd.Node.<init>(Main.java:17)
at arboljd.NList.<init>(Main.java:9)
at arboljd.Node.<init>(Main.java:17) ........................
porque puede ser? Este es mi codigo
import java.io.IOException;
import java.io.*;
class NInternal extends Node {
Node[] next;
}
class NList extends Node {
String w;
NList[] next = new NList[10];
}
class Node {
char c;
NInternal[] i = new NInternal[10];
NList e = new NList();
}
class Arboljd {
static public char getChar() throws IOException {
char c = (char) System.in.read();
input();
return c;
}
static public void input() throws IOException {
while ((char) System.in.read() != '\n')
;
}
static public int initNode(Node n, char l) throws IOException {
// Inicializar el nodo a insertar
n.e = null;
n.c = l;
return 0;
}
static public int insertNode(char l, int r, Node root) throws IOException {
// Inicializar el nodo a insertar
Node newNode = new Node();
if (initNode(newNode, l) != 0) {
System.out.println("Fallo al inicializar el Nodo\n");
} else {
// En caso de que sea el primer nodo a insertar.
if (root == null) {
System.out.println("Se va a insertar el nodo raiz \n");
root = newNode;
} else { // Cualquier otro nodo despues del raiz.
}
}
return r;
}
static public int insertWord(Node n, String l) {
String sAux = l;
Node nAux = n;
char cAux;
for(int i = 0; i < sAux.length(); i++) {
cAux = sAux.charAt(0);
switch (cAux) {
case 'a' | 'A':
nAux = nAux.i[0];
break;
case 'b' | 'B':
nAux = nAux.i[1];
break;
case 'c' | 'C':
nAux = nAux.i[2];
break;
case 'd'|'D' :
nAux = nAux.i[3];
break;
case 'e'|'E' :
nAux = nAux.i[4];
break;
case 'f'|'F' :
nAux = nAux.i[5];
break;
case 'g'|'G' :
nAux = nAux.i[6];
break;
case 'h'|'H' :
nAux = nAux.i[7];
break;
case 'i'|'I' :
nAux = nAux.i[8];
break;
case 'j'|'J' :
nAux = nAux.i[9];
break;
case 'k'|'K' :
nAux = nAux.i[10];
break;
case 'l'|'L' :
nAux = nAux.i[11];
break;
case 'm'|'M' :
nAux = nAux.i[12];
break;
case 'n'|'N' :
nAux = nAux.i[13];
break;
case 'o'|'O' :
nAux = nAux.i[14];
break;
case 'p'|'P'...
Exception in thread "main" java.lang.StackOverflowError
at arboljd.Node.<init>(Main.java:14)
at arboljd.NList.<init>(Main.java:9)
at arboljd.Node.<init>(Main.java:17)
at arboljd.NList.<init>(Main.java:9)
at arboljd.Node.<init>(Main.java:17) ........................
porque puede ser? Este es mi codigo
import java.io.IOException;
import java.io.*;
class NInternal extends Node {
Node[] next;
}
class NList extends Node {
String w;
NList[] next = new NList[10];
}
class Node {
char c;
NInternal[] i = new NInternal[10];
NList e = new NList();
}
class Arboljd {
static public char getChar() throws IOException {
char c = (char) System.in.read();
input();
return c;
}
static public void input() throws IOException {
while ((char) System.in.read() != '\n')
;
}
static public int initNode(Node n, char l) throws IOException {
// Inicializar el nodo a insertar
n.e = null;
n.c = l;
return 0;
}
static public int insertNode(char l, int r, Node root) throws IOException {
// Inicializar el nodo a insertar
Node newNode = new Node();
if (initNode(newNode, l) != 0) {
System.out.println("Fallo al inicializar el Nodo\n");
} else {
// En caso de que sea el primer nodo a insertar.
if (root == null) {
System.out.println("Se va a insertar el nodo raiz \n");
root = newNode;
} else { // Cualquier otro nodo despues del raiz.
}
}
return r;
}
static public int insertWord(Node n, String l) {
String sAux = l;
Node nAux = n;
char cAux;
for(int i = 0; i < sAux.length(); i++) {
cAux = sAux.charAt(0);
switch (cAux) {
case 'a' | 'A':
nAux = nAux.i[0];
break;
case 'b' | 'B':
nAux = nAux.i[1];
break;
case 'c' | 'C':
nAux = nAux.i[2];
break;
case 'd'|'D' :
nAux = nAux.i[3];
break;
case 'e'|'E' :
nAux = nAux.i[4];
break;
case 'f'|'F' :
nAux = nAux.i[5];
break;
case 'g'|'G' :
nAux = nAux.i[6];
break;
case 'h'|'H' :
nAux = nAux.i[7];
break;
case 'i'|'I' :
nAux = nAux.i[8];
break;
case 'j'|'J' :
nAux = nAux.i[9];
break;
case 'k'|'K' :
nAux = nAux.i[10];
break;
case 'l'|'L' :
nAux = nAux.i[11];
break;
case 'm'|'M' :
nAux = nAux.i[12];
break;
case 'n'|'N' :
nAux = nAux.i[13];
break;
case 'o'|'O' :
nAux = nAux.i[14];
break;
case 'p'|'P'...