二元决策树的反序列化

时间:2014-01-17 17:12:31

标签: java deserialization decision-tree

我正在尝试在创建之前从文件中读取决策树。我有一个包含3个变量Node(message,yesNode,noNode)的节点类。消息代表要问的问题或答案。如果答案为是,则yesNode代表到下一个节点的链接,如果答案为否,则noNode代表到下一个节点的链接。我试图阅读的文件示例如下:

Are you a mammal?
Are you bigger than a cat?
does it have tusks
elephant
#
#
Kangaroo
#
#
Mouse
#
#
Do you live underwater?
Trout
#
#
Robin
#
#

文件存储在preOrder遍历中,#stand表示空值。我无法理解我应该如何尝试实施这一点,任何建议?

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点,这是一种伪java方式:

尝试类似:

class Node {
  String message;
  Node yes;
  Node no;
}

Reader myFile = new FileReader("datafile.txt"); // reads your file
Node myTree = parseNode(); // will point to the root of your tree

// This recursive function traverses (and builds) your tree.
Node parseNode() {
  Node newNode;
  String input = myFile.readline();
  if (input.equals("#)) {
    return null;
  } else {
    newNode.message = input;
    newNode.yes = parseNode();
    newNode.no = parseNode();
}

(伪java我的意思是它[主要]是Java语法,但它不会按原样编译,而是为了显示一般的想法。)