像是一天过了四季....附上代码
void Print(SList * L) //定义一个名为Print无返回值,操作对象是链表
{
SList * p; //定义一个动态指针
while(p->next!=NULL) //遍历
{
printf("%d",p->data); //输出单链表(的每个结点的data域内容)
p=p->next; //指针后移
}
}
int Locate(SList * L,int x ) //按值找位置
{
int i;
SList *p; //定义动态指针
while (p->next!=NULL) //遍历
{
p=p->next; //指针后移
i++; //计数
if(p->data==x) //判断是否找到与x相匹配的值
{return i ;} //找到并将其位置返回
else
{return 0;} //未找到
}
}
int Delet(SList * L,int i) //删除节点
{
SList * p,* s; //p是动态指针,s是用于指向新节点的指针
int j=0;
s=(SList *)malloc(sizeof(SList )); //创建新节点s
while(p->!=NULL&&j<i-1) //遍历
{
j++;
p=p->next;
}
if(p==NULL)
{
return 0;
}
else
{
p->=s->next; //断
free(s); //释放空间
}
return 1;
}
void Destory(SList * L) //销毁链表
{
SList * p , * pre ; //pre是前驱
while(p->next != NULL)
{
free(pre);
pre = p; //后移,pre和p同时后移
p = p - > next ;
}
free(pre);
}