与えられたビンツリーdefn:
// a binary tree node
case class Node( var data:(Int),
left:Option[Node],
right:Option[Node]
)
二分木の順番にツリー走査を取得する必要があります。例:
val testtree = Node( (3),
None,
Some(Node( (5),
Some(Node( (1),
None,
None )),
Some(Node( (9),
None,
Some(Node( (15),
None,
None )) )) )) )
このツリーの順序は次のとおりです:3,5,1,9,15
私が試したコード:
def inOrder(t: Node): Unit ={
def print(data:Int,t:Option[Node]):Unit={
if(t!=None)
{
print(data,t.left)
Console.print(data)
print(data,t.right)
}
}
print(t.data,t)
}
しかし、うまくいきません。誰かが私を助けることができますか?
完全なコード:
case class Node( var data:(Int),
left:Option[Node],
right:Option[Node]
)
object Ch15 {
def main( args:Array[String] ) = {
val tree =Node( (3), None,Some(Node( (5), Some(Node( (1), None, None )), Some(Node( (9), None,Some(Node( (15), None, None )) )) )) )
inOrder( tree )
}
def inOrder(t: Node): Unit ={
def print(data:Int,t:Option[Node]):Unit={
if(t!=None)
{
print(data,t.left)
Console.print(data)
print(data,t.right)
}
}
print(t.data,t)
}
}