亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fp樹.txt

?? FP樹算法源代碼 FP樹算法源代碼 FP樹算法源代碼
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
      fprintf(out, "(%d)
", support);
      print(itemset, il, comb, cl, support, spos+1, depth+1, current);
    }
  }
}
File    : item.h
  Contents: itemset management
  Author  : Bart Goethals
  Update  : 4/4/2003
  ----------------------------------------------------------------------*/

#include <set>

using namespace std;

class Item;

class Item_
{
 public:
 
  Item_();
  ~Item_();
 
 
  int id;
  int supp;
 
  set<Item> *children;
 
  Item_ *parent;
  Item_ *nodelink;
};

class Item
{
 public:
 
  Item(int s, Item_ *p);
  Item::Item(const Item& i);
  ~Item();
 
  int getId() const {return item->id;}  
  int getSupport() const {return item->supp;}
 
  set<Item> *getChildren() const {return item->children;}
  set<Item> *makeChildren() const;
 
  Item_ *getItem() const {return item;}
  Item_ *getNext() const {return item->nodelink;}
  void setNext(Item_ *i) const {item->nodelink = i;}
  bool isFrequent(int ms) const {return item->supp >= ms;}
  void Increment(int i=1) const {item->supp += i;}
 
  void removeChildren() const;
 
  bool operator< (const Item &i) const {return getId() < i.getId();}

 private:
 
  Item_ *item;
};
File    : item.cpp
  Contents: itemset management
  Author  : Bart Goethals
  Update  : 04/04/2003
  ----------------------------------------------------------------------*/

#include <stdio.h>
#include "item.h"

Item_::Item_()
{
  supp = 0;
  parent = 0;
  nodelink = 0;
  id = 0;
  children = 0;
}

Item_::~Item_()
{}

Item::Item(int s, Item_ *p)
{
  item = new Item_();
  item->id = s;
  item->parent = p;
}

Item::Item(const Item& i)
{
  Item_ *tmp = i.getItem();

  item = new Item_();
  item->id  = tmp->id;
  item->parent = tmp->parent;
  item->children = tmp->children;
  item->nodelink = tmp->nodelink;
  item->supp = tmp->supp;
}

Item::~Item()
{
  delete item;
}

set<Item> *Item::makeChildren() const
{
  if(item->children==0) item->children = new set<Item>;
  return item->children;
}


void Item::removeChildren() const
{
  set<Item> *items = item->children;
  for(set<Item>::iterator it = items->begin();it != items->end(); it++) it->removeChildren();
  delete item->children;
  item->children = 0;
}
File    : Data.h
  Contents: data set management
  Author  : Bart Goethals
  Update  : 4/4/2003
  ----------------------------------------------------------------------*/

#include <stdio.h>

class Transaction
{
 public:
 
  Transaction(int l) : length(l) {t = new int[l];}
  Transaction(const Transaction &tr);
  ~Transaction(){delete [] t;}
 
  int length;
  int *t;
};

class Data
{
 public:
 
  Data(char *filename, int t=0);
  ~Data();
 
  Transaction *getNext();

 private:
 
  Transaction *getNextAs();
  Transaction *getNextAsFlat();
  Transaction *getNextAsQuest();
  Transaction *getNextBin();
 
  FILE *in;
  char *fn;
  int current;
  int type;
};
 
File    : data.cpp
  Contents: data set management
  Author  : Bart Goethals
  Update  : 04/04/2003
  ----------------------------------------------------------------------*/

#include <vector>
using namespace std;
#include "data.h"

Transaction::Transaction(const Transaction &tr)
{
  length = tr.length;
  t = new int[tr.length];
  for(int i=0; i< length; i++) t = tr.t;
}

Data::Data(char *filename, int t)
{
  fn = filename;
  type = t;
  current=0;

  if(type>1) in = fopen(fn,"rt");
  else in = fopen(fn,"rb");
}

Data::~Data()
{
  if(in) fclose(in);
}

Transaction *Data::getNext()
{
  Transaction *t=0;

  switch(type){
  case 1: t= getNextBin(); break;
  case 2: t= getNextAs(); break;
  case 3: t= getNextAsFlat(); break;
  case 4: t= getNextAsQuest(); break;
  }

  if(t) current++;
  else {
    rewind(in);
    current=0;
  }

  return t;
}

Transaction *Data::getNextAs() 
{
  Transaction *t;
  int tid, item, i, dummy;
  vector<int> list;
  static int cur=0,prev=-1;
  static bool begin=true;
  
  if(feof(in)) {
    begin=true;
    prev=-1;
    return 0;
  }

  if(!begin) list.push_back(cur);
  else begin=false;

  while(true) {
    fscanf(in, "%d %d %d",&dummy, &tid, &item);
    if(feof(in)) {
      int size=list.size();
      t = new Transaction(size);
      for(i=0; i<size; i++) t->t = list;
      list.clear();

      return t;
    }
    else if(prev<0) prev=tid;
    else if(tid != prev){
      prev = tid;
      cur = item;
      int size=list.size();
      t = new Transaction(size);
      for(i=0; i<size; i++) t->t = list;
      list.clear();
   
      return t;
    }

    list.push_back(item);
  }
}

Transaction *Data::getNextAsFlat()
{
  vector<int> list;
  char c;

  // read list of items
  do {
    int item=0, pos=0;
    c = getc(in);
    while((c >= '0') && (c <= '9')) {
      item *=10;
      item += int(c)-int('0');
      c = getc(in);
      pos++;
    }
    if(pos) list.push_back(item);
  }while(c != '
' && !feof(in));
  
  // if end of file is reached, rewind to beginning for next pass
  if(feof(in)){
    rewind(in);
    return 0;
  }
  // Note, also last transaction must end with newline, 
  // else, it will be ignored
  
  // sort list of items
  // sort(list.begin(),list.end());

  // put items in Transaction structure
  Transaction *t = new Transaction(list.size());
  for(int i=0; i<int(list.size()); i++)
    t->t = list;

  return t;
}

Transaction *Data::getNextAsQuest()
{
  int tmptid, tid,l,i;
  Transaction *t;
 
  fscanf(in,"%d %d %d",&tmptid,&tid,&l);
  if(feof(in)) return 0;
 
  t = new Transaction(l);
  for(i=0; i<l; i++) fscanf(in,"%d",&t->t);
  return t;
}

Transaction *Data::getNextBin()
{
  int tmptid, tid,l,i;
  Transaction *t;
 
  fread(&tmptid,4, 1,in);
  if(feof(in)) return 0;
 
  fread(&tid,4, 1,in);
  fread(&l,4, 1,in);
  t = new Transaction(l);
  for(i=0; i<l; i++) fread(&t->t,4, 1,in);

  return t;
}
File     : testfpgrowth.cpp
  Contents : FP-growth algorithm for finding frequent sets
  Author   : Bart Goethals
  Update   : 04/04/2003
----------------------------------------------------------------------*/

#include <iostream>
using namespace std;
#include <stdlib.h>
#include <time.h>
#include "data.h"
#include "item.h"
#include "fptree.h"
#include "fpgrowth.h"

int main(int argc, char *argv[])
{
  cout << "FP-growth frequent itemset mining implementation" << endl;
  cout << "by Bart Goethals, 2000-2003" << endl;
  cout << "http://www.cs.helsinki.fi/u/goethals/" << endl << endl;
  
  if(argc < 4){
    cerr << "usage: " << argv[0] << " datafile datatype minsup [output]" << endl;
    cerr << "datatype = 1 for Quest datagenerator binary" << endl;
    cerr << "datatype = 2 for Quest datagenerator ascii" << endl;
    cerr << "datatype = 3 for flat, i.e. all items per transaction on a single line" << endl;
    cerr << "datatype = 4 for ascii version of Quest datagenerator binary" << endl;
  }
  else{
    FPgrowth *fpgrowth = new FPgrowth();
    
    fpgrowth->setData(argv[1],atoi(argv[2]));
    fpgrowth->setMinsup(atoi(argv[3]));
    if(argc==5) fpgrowth->setOutput(argv[4]);
    
    clock_t start = clock();
    int added = fpgrowth->mine();
    cout << added << "\t[" << (clock()-start)/double(CLOCKS_PER_SEC) << "s]" << endl;
    if(argc==5) cout << "Frequent sets written to " << argv[4] << endl;
    
    delete fpgrowth;
  }
  
  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲丝袜自拍清纯另类| 亚洲精品一线二线三线无人区| 国产一区二区毛片| 精品在线免费视频| 偷偷要91色婷婷| 亚洲成人自拍网| 亚洲成人777| 亚洲丰满少妇videoshd| 一区二区三区久久| 亚洲高清在线精品| 日本视频中文字幕一区二区三区| 午夜一区二区三区视频| 天天综合色天天| 六月婷婷色综合| 国产精品一区二区在线观看不卡| 国产精品中文字幕一区二区三区| 国产麻豆精品在线观看| 丁香婷婷综合网| 色综合天天综合网天天狠天天| 欧美在线小视频| 欧美午夜一区二区三区免费大片| 3d动漫精品啪啪1区2区免费 | 成人精品国产免费网站| 国产成人精品一区二区三区网站观看| 国产电影一区在线| 色综合中文综合网| 欧美性大战xxxxx久久久| 欧美亚洲另类激情小说| 欧美一区二区三区啪啪| 国产丝袜美腿一区二区三区| 国产精品免费av| 午夜一区二区三区视频| 国产毛片精品视频| 一本一道久久a久久精品| 欧美肥妇毛茸茸| 国产女人水真多18毛片18精品视频| 国产精品日日摸夜夜摸av| 亚洲国产精品一区二区尤物区| 青青草91视频| 色婷婷精品久久二区二区蜜臀av | 丁香一区二区三区| 欧美男同性恋视频网站| 中文av一区二区| 免费成人在线观看视频| 99久久99久久精品免费观看| 91超碰这里只有精品国产| 国产精品视频线看| 毛片av中文字幕一区二区| 99久精品国产| 国产日韩成人精品| 麻豆freexxxx性91精品| 色婷婷久久99综合精品jk白丝| 26uuu国产在线精品一区二区| 亚洲精品国产视频| 国产高清无密码一区二区三区| 在线观看av不卡| 国产精品伦理一区二区| 日本成人在线电影网| 色综合久久久久网| 欧美激情一区二区三区蜜桃视频| 日本中文字幕一区| 欧美日韩国产经典色站一区二区三区 | 在线观看不卡一区| 中文字幕一区在线观看| 国产一区二区美女| 精品国产免费一区二区三区香蕉| 亚洲成a人片在线不卡一二三区| 国产成人av影院| 欧美变态凌虐bdsm| 秋霞成人午夜伦在线观看| 欧美日韩久久久| 亚洲综合色视频| 在线精品视频免费播放| 亚洲综合av网| 欧美视频自拍偷拍| 亚洲国产成人av网| 欧美理论片在线| 日韩电影一区二区三区四区| 欧美日韩国产首页| 婷婷成人激情在线网| 欧美日韩亚洲另类| 日韩国产一区二| 91精品欧美综合在线观看最新| 免费在线观看一区| 久久婷婷久久一区二区三区| 久久99精品久久久久久久久久久久 | 亚洲欧美影音先锋| 91黄视频在线| 性欧美大战久久久久久久久| 欧美日韩一区二区三区四区五区| 亚洲高清视频在线| 欧美欧美欧美欧美首页| 精品在线一区二区| 国产精品久久三| 91成人国产精品| 丝袜美腿亚洲一区| 精品国产百合女同互慰| 国产成人综合在线| 亚洲欧美激情视频在线观看一区二区三区| 99国产精品国产精品毛片| 亚洲人精品一区| 日韩精品一区二区三区在线播放| 激情文学综合丁香| 亚洲日本一区二区三区| 欧美日韩国产成人在线91| 黄色精品一二区| 国产精品免费视频观看| 欧美日韩免费视频| 丁香天五香天堂综合| 亚洲午夜日本在线观看| 日韩免费一区二区三区在线播放| 粉嫩高潮美女一区二区三区| 一区二区激情视频| 久久久亚洲午夜电影| 欧日韩精品视频| 国产精品伊人色| 亚洲成人你懂的| 国产精品美女久久久久久2018| 欧美精品乱码久久久久久按摩| 国产91清纯白嫩初高中在线观看| 亚洲电影视频在线| 欧美高清一级片在线观看| 欧美嫩在线观看| 一本久久精品一区二区| 久久精品久久精品| 亚洲成人免费看| 亚洲天堂久久久久久久| 久久综合视频网| 91精品国产综合久久精品图片| 成人av电影免费在线播放| 日韩精品色哟哟| 亚洲午夜在线电影| 亚洲天堂成人在线观看| 久久日韩精品一区二区五区| 欧美二区在线观看| 欧美亚男人的天堂| 91麻豆国产自产在线观看| 国产精品一区二区三区99| 毛片基地黄久久久久久天堂| 亚洲va在线va天堂| 亚洲免费毛片网站| 日韩码欧中文字| 亚洲国产精品99久久久久久久久 | 国产夜色精品一区二区av| 欧美日韩国产色站一区二区三区| 91污在线观看| 91一区二区在线| 99re6这里只有精品视频在线观看| 韩国欧美国产1区| 国产真实乱子伦精品视频| 日韩va欧美va亚洲va久久| 亚洲午夜免费视频| 亚洲444eee在线观看| 一区二区三区精品在线观看| 亚洲欧美日韩在线不卡| 亚洲视频一区二区在线| 亚洲欧洲av一区二区三区久久| 久久久99久久精品欧美| 久久久久久久av麻豆果冻| 久久久久久久久一| 国产婷婷色一区二区三区| 亚洲国产电影在线观看| 中文字幕欧美日本乱码一线二线 | 91视频国产观看| 色综合久久88色综合天天6| 在线观看日韩高清av| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲免费观看高清完整版在线观看| 中文字幕一区在线| 亚洲视频免费在线观看| 亚洲一区二区三区中文字幕在线| 亚洲国产日产av| 另类欧美日韩国产在线| 国产一区二区三区视频在线播放| 国产一区二区免费看| 9i看片成人免费高清| 欧美三级日韩三级国产三级| 日韩午夜激情av| 国产日韩欧美在线一区| 亚洲毛片av在线| 石原莉奈在线亚洲二区| 国产一区二区三区在线观看精品 | 欧美乱熟臀69xxxxxx| 精品蜜桃在线看| 中文字幕日韩一区| 午夜国产不卡在线观看视频| 美脚の诱脚舐め脚责91| 色综合久久综合中文综合网| 91麻豆精品91久久久久同性| 久久久久久久久蜜桃| 亚洲大片精品永久免费| 国产成人免费网站| 欧美日韩高清在线| 国产精品美女久久久久久久久久久| 亚洲v精品v日韩v欧美v专区| 国产98色在线|日韩| 欧美久久婷婷综合色| 中文字幕日韩精品一区| 麻豆高清免费国产一区| 日本精品一区二区三区高清 |