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\0",&input);
FILE *fp;
if((fp=fopen(input, "r"))==NULL)
{
printf("无法打开文件\n");
exit(0);
根据文件名读入文本文件。