我正在尝试为二进制搜索树项目创建一个非常简单的用户界面。
我已经为BST完成了所有必要的功能,但我的问题是我无法掌握如何在程序中引用树变量,以便我可以更新它并通过每个程序调用
let rec interface endCondition tree =
let option = read_int ()
in
if option = endCondition then
let () = print_string "Thank you for using the program!" in
let () = print_newline ()
in print_newline ()
else
let () =
if option = 1 then
let value = read_int ()
(* line I'm having problems with *)
in let tree = insert tree value
in let () = Printf.printf "Inserted Node: %d" value
in print_newline ()
else if option = 2 then
let () = print_string "Search Node:"
(* search code here *)
in print_newline ()
else
let () = print_string "Lower"
in print_newline ()
in interface endCondition tree;;
每当我使用let函数时,它都会创建一个新变量。如何使用作为参数传递的树?
非常感谢!
答案 0 :(得分:2)
你需要将新树传递得更远,这样你最终可以得到它,如下所示:
else
let tree' =
if option = 1 then let ... in insert tree value
else if option = 2 then let ... in tree
else let .... in tree
in interface endCondition tree'