(只写了test.c 相关部分代码,main.c head.h引用及引入部分没写,用时套入即可)
int delewei(Linklist L, int pos)//按位删除
{
Linklist k=L;
if(L==NULL || pos<=0 || pos>L->len)
return -1;
for(int i=1;i<=pos;i++)
p=p->Next;
Linklist q->Next=p->Next;
p->Next=q;
free(q);
q=NULL;
return 0;
}
int serch_eliment(Linklisk L,datatype x)//按元素查找
{
if(L==NULL || L->len==0)
return -1;
int count=0;
Linklisk p=L->Next;
while(p->Next != NULL)
{
p=p->Next;
count++;
if(p->data==x)
return count;
}
return -1;
}
void update_eliment(Linklist,datatype x,datatype e)//x改e
{
int pos= serch_eliment(L,x);
if(pos==-1)
puts("Fail");
else
L.data=e;
}
void dele_eliment(Linklisk L,datatype x)//删除x
{
int pos= serch_eliment(L,x);
if(pos==-1)
puts("Fail");
else
{
int y=delewei(L, pos);
if(y==-1)
puts("Fail");
}
}
void sort_bump(Linklist L)//插入排序
{
if(L==NULL || L->Next=NULL ||L.len<2)
puts("没必要排");
else
{
Linklist p,q,t;
t=L;
p=L->Next->Next;
L->Next->Next=NULL;
while(p)
{
q=p->Next;
while(t->Next != NULL && t->Next.data<p.data)
t=t->Next;
p->Next=t->Next;
t->Next=p;
p=q;
}
}
}