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

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

?? informationretrieval.cpp

?? ti-idf算法
?? CPP
字號:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<math.h>
struct Ttree
 {
  char data[20];
  double weight;
  double num;  //一篇文獻中的某一索引詞出現的次數
  double max; //一篇文獻的總字數
  double n;  //索引詞出現在幾個文檔中
  struct Ttree *lchild;   //左兒子
  struct Ttree *rchild;   //右兒子
  };
  struct Ttree *rootW=NULL;
double MF=6;
 FILE *fp=fopen("D:\\mm.txt","w");
Ttree *createTtree(Ttree *root,FILE *fp){
  int i=0,t=0;
  struct Ttree *p,*q;  //定義中間指針變量
  char ch;
  p=(Ttree*)malloc(sizeof(Ttree));  //申請新的存儲空間
  p->data[0]='\0';
  if(fp==NULL)
    {
    printf("\nCannot open file strike any key exit!");
     return NULL;
    }
  ch=fgetc(fp);
  while((ch!=EOF)&&(t==0))
  {    if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
          if(ch<='Z') ch=ch+32;
           p->data[i]=ch;
           i++;
          }
       else{ if(p->data[0]=='\0'){ch=fgetc(fp);continue;}
           p->data[i]='\0';
           p->max++;
           p->n=1;
           p->num=1;
           i=0;
           t=1;
           p->lchild=NULL;
           p->rchild=NULL;           //初始化頭節點的左右兒子為空指針
           root=p;
          }
       ch=fgetc(fp);
     }
    q=(Ttree*)malloc(sizeof(Ttree));
    q->data[0]='\0' ;
   while(ch!=EOF){
       if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
        if(ch<='Z') ch=ch+32;
           q->data[i]=ch;
           i++;
           ch=fgetc(fp);}
       else {
           if(q->data[0]=='\0'){ch=fgetc(fp);continue;}
           q->data[i]='\0';
           root->max++;
           q->n=1;
           q->num=1;
           i=0;
           q->lchild=NULL;
           q->rchild=NULL;              //初始化頭節點的左右兒子為空指針
           if(p==NULL)p=root;
           ch=fgetc(fp);
           while(p!=NULL)            //尋找待插入節點的位置
            {
              if(strcmp(q->data,p->data)<0){       //如果待插入的節點的值小于當前節點的值,
                  if(p->lchild==NULL)  // 且其左子樹為空
                    {p->lchild=q;        //  則插入
                    p=NULL;}             //并置當前節點為空,退出當前的while循環
                  else
                    p=p->lchild;
               }         // 否則繼續訪問其左子樹
              else if(strcmp(q->data,p->data)>0){                       //如果待插入的節點的值大于當前節點的值
                   if(p->rchild==NULL)     // 且其右子樹為空
                    {p->rchild=q;         //  則插入
                     p=NULL;}             //并置當前節點為空,退出當前的while循環
                   else
                     p=p->rchild;
              }                      // 否則繼續訪問其右子樹
             else {p->num++;p=NULL; }
           }  //while
           q=(Ttree*)malloc(sizeof(Ttree));
           q->data[0]='\0';
       } //else
     }//while
   return root;
}
/*二叉樹查找*/
 Ttree *SearchBinTtree(Ttree *rootx,Ttree *rooty){
    if(rootx==NULL) return NULL;
    if(strcmp(rootx->data,rooty->data)==0) {rooty->n++;return rootx;}
    if(strcmp(rootx->data,rooty->data)>0) return SearchBinTtree(rootx->lchild,rooty);
    return SearchBinTtree(rootx->rchild,rooty);
    }
 /*計算在詞出現在幾個文檔中*/
 void InMidThread(Ttree *rooty,Ttree *rootx){
    if(rooty==NULL) return;
    InMidThread(rooty->lchild,rootx); //中序遍歷二叉樹左子樹 ;
    SearchBinTtree(rootx,rooty);
    InMidThread(rooty->rchild,rootx); //中序遍歷二叉樹右子樹 ;
    }
 /*計算權值*/
void InThread(Ttree *root,Ttree *Mroot){
    if(root==NULL) return;
    InThread(root->lchild,Mroot); //中序遍歷二叉樹左子樹 ;
    root->weight=(root->num/Mroot->max)*log(MF/root->n);
    InThread(root->rchild,Mroot); //中序遍歷二叉樹右子樹 ;
    }
    
 //對權值進行排序
void weight(Ttree *root,Ttree *r,Ttree *p,Ttree *q){
    if(root==NULL) return;
    weight(root->lchild,r,p,q); //中序遍歷二叉樹左子樹 ;
    if(r==NULL)
         {p=(Ttree*)malloc(sizeof(Ttree));  //申請新的存儲空間
          p->data=root->data;
          p->weight=root->weight;
          p->num=root->num;
          p->n=root->n;
          p->lchild=NULL;
          p->rchild=NULL;           //初始化頭節點的左右兒子為空指針
          rootW=p;                              //指針rootW指向頭節點
          r=p;}
    else{
      q=(Ttree*)malloc(sizeof(Ttree));
      q->data=root->data;
      q->weight=root->weight;
      q->num=root->num;
      q->n=root->n;
      q->lchild=NULL;
      q->rchild=NULL;       //初始化頭節點的左右兒子為空指針
      if(p==NULL) p=rootW;       //如果要有新節點插入則,p重新指向根節點,因為 每次比較都要從根節點開始
      while(p!=NULL)            //尋找待插入節點的位置
       {
        if(q->weight>p->weight){       //如果待插入的節點的值小于當前節點的值,
              if(p->lchild==NULL)  // 且其左子樹為空
                {p->lchild=q;        //  則插入
                 p=NULL;}             //并置當前節點為空,退出當前的while循環
              else
              p=p->lchild;}         // 否則繼續訪問其左子樹
       else{                       //如果待插入的節點的值大于當前節點的值
           if(p->rchild==NULL)     // 且其右子樹為空
             {p->rchild=q;         //  則插入
             p=NULL;}             //并置當前節點為空,退出當前的while循環
           else
             p=p->rchild;}        // 否則繼續訪問其右子樹
         }//while
       } //else
      weight(root->rchild,r,p,q);
     }
//輸出權值
 void ThreadWeight(Ttree *root){
    if(root==NULL) return;
    ThreadWeight(root->lchild); //中序遍歷二叉樹左子樹 ;
    fprintf(fp,"%s\t%f\t%f\t%f\t\n",root->data,root->weight,root->num,root->n);
    ThreadWeight(root->rchild); //中序遍歷二叉樹右子樹 ;
    }
void main(){
FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6;
Ttree *root1,*root2,*root3,*root4,*root5,*root6,*r=NULL,*p,*q;
fp1=fopen("d:\\p1.txt","r");
root1=createTtree(root1,fp1);
fclose(fp1);
fp2=fopen("d:\\p2.txt","r");
root2=createTtree(root2,fp2);
fclose(fp2);
fp3=fopen("d:\\p3.txt","r");
root3=createTtree(root3,fp3);
fclose(fp3);
fp4=fopen("d:\\p4.txt","r");
root4=createTtree(root4,fp4);
fclose(fp4);
fp5=fopen("d:\\p5.txt","r");
root5=createTtree(root5,fp5);
fclose(fp5);
fp6=fopen("d:\\p6.txt","r");
root6=createTtree(root6,fp6);
fclose(fp6);
InMidThread(root1,root2);
InMidThread(root1,root3);
InMidThread(root1,root4);
InMidThread(root1,root5);
InMidThread(root1,root6);
InMidThread(root2,root1);
InMidThread(root2,root3);
InMidThread(root2,root4);
InMidThread(root2,root5);
InMidThread(root2,root6);
InMidThread(root3,root1);
InMidThread(root3,root2);
InMidThread(root3,root4);
InMidThread(root3,root5);
InMidThread(root3,root6);
InMidThread(root4,root1);
InMidThread(root4,root2);
InMidThread(root4,root3);
InMidThread(root4,root5);
InMidThread(root4,root6);
InMidThread(root5,root1);
InMidThread(root5,root2);
InMidThread(root5,root3);
InMidThread(root5,root4);
InMidThread(root5,root6);
InMidThread(root6,root1);
InMidThread(root6,root2);
InMidThread(root6,root3);
InMidThread(root6,root4);
InMidThread(root6,root5);
fprintf(fp,"第1篇文檔\n");
InThread(root1,root1);
weight(root1,r,p,q);
ThreadWeight(rootW);
fprintf(fp,"第2篇文檔\n");
InThread(root2,root2);
weight(root2,r,p,q);
ThreadWeight(rootW);
fprintf(fp,"第3篇文檔\n");
InThread(root3,root3);
weight(root3,r,p,q);
ThreadWeight(rootW);
fprintf(fp,"第4篇文檔\n");
InThread(root4,root4);
weight(root4,r,p,q);
ThreadWeight(rootW);
fprintf(fp,"第5篇文檔\n");
InThread(root5,root5);
weight(root5,r,p,q);
ThreadWeight(rootW);
fprintf(fp,"第6篇文檔\n");
InThread(root6,root6);
weight(root6,r,p,q);
ThreadWeight(rootW);
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久影院| 欧美精品久久一区| 亚洲日本免费电影| 91在线播放网址| 亚洲欧美欧美一区二区三区| 欧美亚洲愉拍一区二区| 香蕉久久一区二区不卡无毒影院| 色综合一区二区| 亚洲国产综合91精品麻豆| 欧美精品日日鲁夜夜添| 国产精品资源站在线| 国产精品电影一区二区三区| 欧美性一级生活| 日本欧美在线观看| 中文字幕va一区二区三区| 色av一区二区| 久久不见久久见中文字幕免费| 2014亚洲片线观看视频免费| 99久久夜色精品国产网站| 亚洲va在线va天堂| 国产亚洲美州欧州综合国| 91视频www| 免费亚洲电影在线| 国产免费成人在线视频| 99re成人精品视频| 久久av中文字幕片| 亚洲人成电影网站色mp4| 欧美一区二区三区系列电影| 成人免费三级在线| 日本vs亚洲vs韩国一区三区二区 | 日韩激情一二三区| 国产三级精品视频| 欧美日韩国产成人在线91| 国产传媒欧美日韩成人| 午夜精品一区二区三区免费视频| 久久蜜桃一区二区| 欧美日韩国产不卡| www..com久久爱| 麻豆精品国产传媒mv男同| 国产精品初高中害羞小美女文| 911精品产国品一二三产区| 99精品在线观看视频| 国内精品视频666| 亚洲一级片在线观看| 国产清纯白嫩初高生在线观看91| 91精品国产免费久久综合| 99久久精品国产一区二区三区| 全国精品久久少妇| 亚洲一区在线播放| 自拍偷自拍亚洲精品播放| 久久综合九色综合97_久久久 | 欧美日韩亚洲综合在线 | 99国产欧美久久久精品| 麻豆精品一区二区三区| 一区二区在线电影| 亚洲欧洲99久久| 2019国产精品| 欧美xxx久久| 91精品国产欧美一区二区18| 欧美午夜在线观看| 91免费看视频| av在线这里只有精品| 国产一区二区91| 国产一区二区主播在线| 日韩国产成人精品| 午夜精品福利视频网站| 一区二区欧美精品| 亚洲精品成人少妇| 一区二区三区久久| 一区二区三区在线播| 亚洲理论在线观看| 亚洲三级免费电影| 亚洲欧美欧美一区二区三区| 国产精品全国免费观看高清| 国产午夜精品一区二区三区嫩草| 精品91自产拍在线观看一区| 日韩欧美激情一区| 精品国产乱码久久久久久久| 日韩免费在线观看| 精品国产乱码久久久久久老虎| 精品捆绑美女sm三区| 日韩精品一区二| 久久―日本道色综合久久| 久久免费美女视频| 国产精品久久99| 亚洲三级在线看| 一区二区三区在线视频免费| 亚洲午夜电影在线| 日韩成人精品视频| 久久99精品国产麻豆婷婷洗澡| 黑人精品欧美一区二区蜜桃 | 成人精品gif动图一区| 国产精品91一区二区| 成人激情开心网| 91蝌蚪porny九色| 91成人免费电影| 91精品国产手机| 久久品道一品道久久精品| 日本一区二区成人| 亚洲午夜久久久久久久久久久 | 欧美美女一区二区在线观看| 日韩欧美在线影院| 国产精品欧美综合在线| 亚洲美女偷拍久久| 蜜臀a∨国产成人精品| 国产成人精品亚洲777人妖| 99综合电影在线视频| 欧美日韩国产另类不卡| 欧美精品一区二区三区在线| 国产精品女同一区二区三区| 亚洲综合精品自拍| 国产一区二区三区免费播放| 波多野结衣在线aⅴ中文字幕不卡| 97se亚洲国产综合自在线观| 欧美精品一二三| 欧美激情一区在线| 香蕉久久夜色精品国产使用方法| 国产精品77777竹菊影视小说| 国产电影一区二区三区| 99久久久久久| 精品少妇一区二区| 中文字幕一区二区三区在线观看| 亚洲成人在线观看视频| 国产精品亚洲一区二区三区在线| 色综合一个色综合| 26uuu亚洲| 亚洲成人先锋电影| 成人高清免费观看| 91精品国产综合久久久久久漫画 | 丝袜亚洲精品中文字幕一区| 国产精品影视网| 9191久久久久久久久久久| 中文字幕日韩精品一区| 蜜桃视频在线观看一区二区| 在线视频一区二区三区| 国产女人18毛片水真多成人如厕| 日本不卡123| 欧美视频自拍偷拍| 国产精品成人一区二区艾草| 韩日av一区二区| 6080国产精品一区二区| 亚洲三级免费观看| hitomi一区二区三区精品| 精品国产一二三区| 奇米777欧美一区二区| 在线观看日韩电影| 亚洲男同性恋视频| 成人aaaa免费全部观看| 国产欧美精品一区二区色综合| 婷婷开心激情综合| 91免费视频网址| 中文字幕一区二区三区不卡在线| 国产成人在线色| 久久亚洲影视婷婷| 国产一区在线精品| 精品日韩在线观看| 精品在线视频一区| 日韩女优制服丝袜电影| 蜜乳av一区二区| 欧美www视频| 开心九九激情九九欧美日韩精美视频电影 | 91精品国产一区二区三区 | 中文字幕一区在线| 成人亚洲一区二区一| 欧美激情一二三区| 国产精品一区二区男女羞羞无遮挡| 日韩欧美黄色影院| 久久99国产乱子伦精品免费| 2020国产精品自拍| 国产精一区二区三区| 国产亲近乱来精品视频| 国产91精品露脸国语对白| 中文成人综合网| 成人国产电影网| 亚洲人成人一区二区在线观看| 91视频在线看| 亚洲成人自拍偷拍| 91精品国产91久久综合桃花| 午夜精品爽啪视频| 欧美一级片在线观看| 精品一区精品二区高清| 国产女人18毛片水真多成人如厕| 成人动漫在线一区| 亚洲精品欧美激情| 欧美精品亚洲二区| 国产美女精品在线| 1000精品久久久久久久久| 91极品美女在线| 肉色丝袜一区二区| wwwwxxxxx欧美| 欧美精品一二三| 成人在线视频一区| 亚洲视频免费观看| 欧美日韩视频专区在线播放| 蜜桃视频免费观看一区| 国产精品无遮挡| 欧洲精品在线观看| 久久超级碰视频| 亚洲柠檬福利资源导航| 91精品国产全国免费观看|