Java 运行时堆栈溢出异常
运行此代码时出现异常Java 运行时堆栈溢出异常,java,c#,visual-studio,Java,C#,Visual Studio,运行此代码时出现异常 public void insertRBT(int value) { //BNode newNode = new BNode(value); root=insertNode(root, value,null); count += 1; } protected BNode insertNode(BNode rt, int value, BNode pare
public void insertRBT(int value)
{
//BNode newNode = new BNode(value);
root=insertNode(root, value,null);
count += 1;
}
protected BNode insertNode(BNode rt, int value, BNode parent)
{
BNode grandParent, greatGrandParent;
if (rt == null)
{
BNode newNode = new BNode(value, parent);
parent = newNode.parent;
if (parent != null)
{
if (value > parent.value)
{
parent.right = newNode;
}
else {
parent.left = newNode;
}
}
if (count > 0)
{
newNode.red = true;
}
else
{
newNode.red = false;
}
//added
insertedNode = newNode;
grandParent = null;
greatGrandParent = null;
insertFix(newNode,parent,grandParent,greatGrandParent);
return newNode;
}
else if (value.CompareTo(rt.value) < 0)
{
rt.left = insertNode(rt.left, value, rt);
return rt;
}else //if(value.CompareTo(rt.value)> 0)
{
rt.right = insertNode(rt.right, value, rt);
return rt;
}
}
//B节点类
class BNode
{
public int value;
public BNode left;
public BNode right;
public BNode parent; //check
public Boolean red = true; // red=false - indicates black
public BNode(int num, BNode parent)
{
value = num;
left = null;
right = null;
this.parent = parent;
}
}
在测试代码时,我添加了50、75、40、45、25-当我输入25时,出现了异常。请包括stacktraceasking about Homegraphy?@MattBucci,这个问题绝对不相关。RedBlackTree.exe!RedBlackTree.RedBlackTree.insertNode(RedBlackTree.BNode rt,int值,RedBlackTree.BNode父节点)第157行C#RedBlackTree.exe!RedBlackTree.RedBlackTree.insertNode(RedBlackTree.BNode rt,int值,RedBlackTree.BNode父节点)第153行C#RedBlackTree.exe!RedBlackTree.RedBlackTree.insertNode(RedBlackTree.BNode rt,int值,RedBlackTree.BNode父节点)第157行C#上面是堆栈跟踪,由一系列行组成。这些行表示将值与根值进行比较的位置。看起来您处于循环中,这就是堆栈变满的原因。您可能正在无限循环中递归插入新的子节点。
class BNode
{
public int value;
public BNode left;
public BNode right;
public BNode parent; //check
public Boolean red = true; // red=false - indicates black
public BNode(int num, BNode parent)
{
value = num;
left = null;
right = null;
this.parent = parent;
}
}