C语言用二叉树统计一个源文件中每个单词的次数
来源:互联网 发布:大数据挖掘 工业应用 编辑:程序博客网 时间:2024/06/15 13:54
由于出现的单词不确定,所以用二叉树实现:
//TreeNode.htypedef struct _TreeNode{ int count; //出现的次数 char* word;//单词本身 struct _TreeNode* left; struct _TreeNode* right; }TreeNode;//给TreeNode分配内存 TreeNode* talloc(void){ return (TreeNode*)malloc(sizeof(TreeNode)); }//打印tree void tprint(TreeNode* root){ //打印left->self->right if(root!=NULL) { tprint(root->left); printf("%4d %s\n",root->count,root->word); tprint(root->right); }}//把单词添加节点的合适位置 TreeNode* addNode(TreeNode* node,const char* word){ int con; TreeNode* tmp; if(node==NULL) { node = talloc(); node->count=1; node->word=strdup(word); node->left=node->right=NULL; }else if((con=strcmp(word,node->word))<0) { tmp = addNode(node->left,word); node->left=tmp; }else if(con>0) { tmp = addNode(node->right,word); node->right=tmp; }else{ node->count++; } return node;}/**从指定的流中读取单词 */int getWord(char* ch,size_t n,FILE* f){ int c; char* p = ch; while(isspace(c=fgetc(f))) ; if(c!=EOF) *p++=c; if(!isalpha(c)) { *p='\0'; return c; } for(;--n>0;p++) { if(!isalnum(*p=fgetc(f))) { ungetc(*p,f); break; } } *p='\0'; return c; }//是否tree占用的内存 void treeFree(TreeNode* root){ if(root!=NULL) { treeFree(root->left); free(root->word); //释放节点的word占用的内存 free(root); //是否节点占用的内存 treeFree(root->right); } }//Test.c#include <stdio.h>#include <stdlib.h>#include "TreeNode.h"#define MAX 100int main(int argc, char *argv[]){ FILE* f; char w[MAX]={0}; char* fname="TreeNode.h"; if((f=fopen(fname,"r"))!=NULL) { TreeNode* root = NULL; while((getWord(w,MAX,f)!=EOF)) { if(isalpha(w[0])) root = addNode(root,w); } tprint(root); treeFree(root); fclose(f); }else{ printf("open %s error\n",fname); } getchar(); return 0;}
- C语言用二叉树统计一个源文件中每个单词的次数
- 用c语言编程 统计输入的一个字符串中每个字母出现的次数
- 统计文件中每个单词的个数--C语言实现
- Java 统计一个字符串中每个单词,或者字母出现的次数
- 统计文本中每个单词的序列 和 出现次数
- 统计输出某个文件中每个单词出现的次数
- 统计一篇英文中每个单词出现的次数
- 统计文件中每个单词的出现次数
- 统计字符串中每个单词出现的次数 for C++
- 统计一篇文章中每个单词出现的次数
- 统计每个单词在输入中出现的次数
- java 统计文章中每个单词出现的次数
- go语言之map练习(二):编写一个程序wordfreq程序,统计输入文本中每个单词出现的频率(次数)
- 查找一个字符串中每个单词的出现次数--Java
- C语言统计一个字符串中单词的个数
- 统计一个字符串中单词的个数(C语言)
- c语言统计从文件读取的文章中所有单词的出现次数
- 统计一个字符串中每个字符出现的次数
- Ehcache 整合Spring 使用页面、对象缓存
- 花的嫁裳淡淡伤感日志发布:可惜我是白羊座
- 逆波兰——之树形表示
- 10款不错的 jQuery Mobile 插件推荐
- 版本号比较
- C语言用二叉树统计一个源文件中每个单词的次数
- Oracle9i升级到oracle10g
- 戏谈单向链表判环
- iOS开发:小技巧积累
- 使用GDI+的MFC应用程序的文件打开和保存对话框
- TesseractEngine
- DB数据完整性和一致性
- 中篇小说《南国梦》之银狐公子---自述
- Oracle的连接