www.pudn.com > fp_growth_source.rar > FPTree.java
package association.fptree;
/**
* 定义FPTree的数据结构,包括项目表和树
*
*/
public class FPTree {
ItemTb itemTb;
Tree tree;
FPTree(){
tree=new Tree();
}
public void ConsItemTb(int num){//num为项目个数
itemTb=new ItemTb(num);
}
/**项目表*/
class ItemTb{
private int[] count;
private String[] item;
private Node[] link;
private int len;
ItemTb(int num){
count=new int[num];
item=new String[num];
link=new Node[num];
len=num;
}
void Insert(String item,int num,int count,Node node){
if (len>num){
this.item[num]=item;
this.count[num]=count;
this.link[num]=node;
}
}
int ReadCount(int num){
return count[num];
}
String ReadItem(int n){
String name=item[n];
return name;
}
Node ReadNode(int num){
return link[num];
}
void SetNode(Node node,int num){
link[num]=node;
}
int Length(){
return len;
}
void CopyItemArray(String[] dest){
System.arraycopy(item,0,dest,0,len);
}
void CopyCountArray(int[] dest){
System.arraycopy(count,0,dest,0,len);
}
/**复制ItemTb表到一个Item链表*/
Item CopyItemArray(){
Item head=new Item("head");
Item item=head;
String name;
int count;
for(int i=0;i