单链表按元素查找
Linklist seek(Linklist head,datatype element,int len)
{ int i=1;
if(head==NULL)
{
return head;
}
else
{
Linklist p=head;
while(p)
{
if(element==p->data)
{
printf("是第%d位数:",i);
return i;
}
p=p->next;
i++;
}
return head;
}
}
//单链表按位置查找
Linklist seek_pos(Linklist head,int pos,int len)
{
if(NULL==head||pos<1||pos>len)
{
return NULL;
}
else
{
Linklist p=head;
for(int i=1;i<=pos-1;i++)
{
p=p->next;
}
printf("第%d位元素是%d",pos,p->data);
}
return head;
}
//单链表按位置修改
Linklist modify(Linklist head,int pos,int len,datatype element)
{
if(NULL==head||pos<1||pos>len)
{
return NULL;
}
else
{ Linklist p=head;
for(int i=1;i<pos;i++)
{
p=p->next;
}
p->data=element;
}
return head;
}
//单链表按元素删除
Linklist delyuansu(Linklist head,datatype element,int len)
{
int i=seek(head,element,len);
head=delpos(head, i, len);
return head;
}
//按元素修改
Linklist modifyyuansu(Linklist head,datatype element,int num,int len)
{
int i=seek(head,element,len);
head=modify(head,i,len,num);
return head;
}
//单链表逆置(有问题)
Linklist nizhi(Linklist head)
{
Linklist p=head->next;
head->next=NULL;
while(p!=NULL)
{
Linklist t=p;
t->next=head;
head=t;
}
return head;
}
//单链表查找倒数第n个节点
Linklist seek_back(Linklist head,int num,int len)
{
if(head==NULL||num<1||num>len)
{
return NULL;
}
else
{ Linklist p=head;
for(int i=0;i<len-num;i++)
{
p=p->next;
}
printf("%d\n",p->data);
}
return head;
}
//单链表释放内存
Linklist shifang(Linklist head)
{
if(NULL==head)
{ return NULL;
}
else
{
free(head);
head=NULL;
}
return head;
}
25年2月15日
最新推荐文章于 2025-04-20 16:45:26 发布