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