데시 시온 트리를 나타내는 데 사용할 HDFS에 이진 트리를 써야합니다. 하지만 그렇게하기 위해서 먼저 트리 노드가 될 BinaryTreeNode 클래스를 생성해야합니다. 이 내 클래스 속성은 다음과 같습니다hadoop에서 이진 트리 쓰기 FS
private String name;
private String attribute;
private String attType;
private String condition;
private String lines;
private BinaryTreeNode leftChild;
private BinaryTreeNode rightChild;
그래서 지금 내가 읽고 이러한 노드를 작성에 대한 쓰기 및 readFields의 방법을 구현해야합니다. 이것들은 내가 한 일이다 :
public void write(DataOutput d) throws IOException
{
d.writeUTF(name);
d.writeUTF(attribute);
d.writeUTF(attType);
d.writeUTF(condition);
d.writeUTF(lines);
//SOMETHIN FOR LEFT AND RIGHT CHILD
}
public void readFields(DataInput di) throws IOException
{
name=di.readUTF();
attribute=di.readUTF();
attType=di.readUTF();
condition=di.readUTF();
lines=di.readUTF();
//SOMETHIN FOR LEFT AND RIGHT CHILD
}
BinaryTreeNode read(DataInput in) throws IOException
{
BinaryTreeNode ob = new BinaryTreeNode();
ob.readFields(in);
return ob;
}
나는 2 개의 자식 노드를 쓰고 읽는 방법을 생각한다. 트리는 재귀 적으로 빌드 될 것이고 모든 노드는 0-2자를 가질 것임에 유의하십시오. 그래서 나중의 목적은 BinaryTreeNode 루트 속성을 가질 BinaryTree 클래스를 갖는 것입니다. 감사합니다
그래서 이진 탐색 트리입니다. 한 번의 탐색에서 2 진 탐색 트리를 구성 할 수 없습니다. 메인 트리를 구성 할 수 있도록 '순서대로, 순서대로 또는 순서대로, 선주문'트래버스를 작성해야합니다. –
내가 필요한 것은 내 나무를 저장하고로드하는 방법입니다. 어떻게 든 내 루트를 개체로 저장하고로드하는 방법을 찾으면 내 목표는 fullfiled됩니다. 글쎄 이진 검색 트리가 아닙니다. 기계 학습에 사용되는 desicion tree입니다. 바이너리 분할을하고 있기 때문에 이진 트리입니다. 그 모델을 저장하고로드해야합니다. – jojoba