**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
三天前关门了。
改进这个问题
我正在编写一个基本的java代码来对二叉树进行有序遍历。
void inorder()
{
Stack<NodeT> stack = new Stack<>();
NodeT current = this.root;
while(!(current == null && stack.empty()))
{
if(current == null)
{
current = stack.peek().getRight();
System.out.print((char)stack.pop().getData());//HERE
}
else
{
stack.push(current);
current = current.getLeft();
}
}
System.out.println();
}
为什么我要把它打成字符?从堆栈中弹出的项是树的一个节点,在我调用的同一行中 getData()
打印字符。我想它正在打印ascii值。
编辑:
class NodeT
{
private NodeT left;
private NodeT right;
private char data;
NodeT()
{
this.left = null;
this.right = null;
this.data = '@';
}
NodeT getLeft()
{
return this.left;
}
NodeT getRight()
{
return this.right;
}
int getData()
{
return this.data;
}
void setLeft(NodeT ref)
{
this.left = ref;
}
void setRight(NodeT ref)
{
this.right = ref;
}
void setData(char element)
{
this.data = element;
}
}
1条答案
按热度按时间dxxyhpgq1#
上面的方法是可行的,因为在nodet类的getter中,它的返回类型是int。