struct LNode *Create() { LinkList L; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; return L; }
创建一个带有头节点的单链表
bool Find(LinkList &L,char a[20])//查找单词 { LNode *p; p=L->next; while(p!=NULL) { if(strcmp(a,p->c)==0){//找到单词 p->count++;//计数加一 return true; } else p=p->next; } return false; }
判断新搜索的单词是否和原来的一样,若是一样则在相应节点的结构体里加一
void Insert(LinkList &L,char a[20]) { LNode *p; p=(LinkList)malloc(sizeof(LNode)); strcpy(p->c,a); p->count=1; p->next=L->next; L->next=p; }
若是搜索到的单词和之前的结果全都不一样,再新建立一个节点,词数计为1.
void SelectSort(LinkList &L){ LNode *p,*q; p=(LinkList)malloc(sizeof(LNode)); q=(LinkList)malloc(sizeof(LNode)); char tempc[20]; int temp; for (p=L->next; p!=NULL; p=p->next) { for (q = p; q!=NULL; q=q->next) { if (p->count < q->count) { temp=p->count; strcpy(tempc,p->c); p->count=q->count; strcpy(p->c,q->c); q->count=temp; strcpy(p->c,tempc); } }
运用的选择排序对词数进行排序。
printf("请输入文件名:"); scanf("%s ",&input); FILE *fp; if((fp=fopen(input, "r"))==NULL) { printf("无法打开文件 "); exit(0);
根据文件名读入文本文件。