64,642
社区成员
发帖
与我相关
我的任务
分享
void OutResult(ResultType rslist,int n)//ResultType rslist,申明的对象!
{ int i,j;
Link p; //?? Link是个指针对象吧?
for(i=0;i<n;i++){
printf("The word ");
PrintWord(rslist[i].data); // rslist[i]数组对象了?
printf(" appeared in the file %d times",rslist[i].count);
if(rslist[i].count!=0){
printf(" and on ");
p=rslist[i].next; //??
for(j=0;j<rslist[i].count;j++)
{
if(j<rslist[i].count-1)
{
printf("%dth line ",p->elem);
p=p->next; //??
}
else printf("%dth line ",p->elem);
}
}
/*--------------------------------------------*/
/* 撤销统计结果数据空间函数 */
/* 功能:释放存放统计结果数据的动态存储空间 */
/* 参数:ResultType rs--统计结果数组 */
/* 返回值:无 */
/*--------------------------------------------*/
void FreeResult(ResultType rs,int n)
{
int i;
Link p,q;
//n>16时,数组访问越界,我把它上限设成了16,可能不合你的功能
for(i=0;i<16/*n*/;i++){
p=rs[i].next;
while(p){
q=p;
p=p->next;
free(q);
}
rs[i].next=NULL;
rs[i].count=0;
}
}
/*--------------------------------------------*/
/* 撤销有序表函数 */
/* 功能:释放有序表所有结点,撤销有序表 */
/* 参数:OrderList *L--有序表指针 */
/* 返回值:无 */
/*--------------------------------------------*/
void DestroyList(OrderList *L)
{
LinkType p,q;
//简单的添加了一个检查,因为我发现你的LinkType所指对象在初始化时都正确的设置了所有字段
//即如果存在一个对象,那么便不会出现访问0xcccccccc的情况。
if(L->size==0)
return;
p=L->head;
while(p){
q=p;p=p->next;
free(q);
}
L->head=L->tail=NULL;
}