tepedef struct Node{
int date;
struct Node *next;
} List;
//创建一个链表
void CreatList(List **ptrl)
{
(**ptrl)=(List*)malloc(sizeof(List));
(*List)->next=NULL;
}
//求长度
int length(List *ptrl)
{
List *p=ptrl;
int j=0;
while(p)
{
p=p->next;
j++;
}
return j;
}
//按序号查找
int FindList(List *ptrl,int k)
{
List *p=ptrl;
int i=1;
while(p!=NULL&&i<k)
{
p=p->next;
i++
}
if(i=k)
return p;
else
return NULL;
}
//按值查找
List *Find(int x,List *ptrl)
{
List *p=ptrl;
while(p!=NULL&&p->date!=x)
p=p->next;
return p;
}
//链表的插入
List* InsertList(int *e,List *ptrl,int i)
{
List *p,*s;
if(i==1)//插入的元素在表头
{
s=(List*)malloc(sizeof(List));
s->date=x;
s->next=ptrl;
return s;
}
p=Find(i-1,ptrl)//如果要插入的元素为空则返回
if(p==NULL)
{
printf("canshucuowu");
return NULL;
}
else
{
s=(List*)malloc(sizeof(List));//插入操作
s->date=x;
s->next=p->next;
p->next=s;
return ptrl;
}
}
//链表的删除
List* DelseteList(int *e,List *ptrl,int i,)
{
List *p,*s;
if(i==1)
{
s=ptrl;
if(ptrl!=NULL)
ptrl=ptrl->next;
else ruturn NULL;
free(s);
return ptrl;
}
p=Find(i-1,ptrl)
if(p==NULL)
{
printf("bucunzia1");
return ;
}
else
{
s=p->next;
p->next=s->next;
free(s);
}
}
数据结构与算法 链表的操作
最新推荐文章于 2022-01-01 16:33:31 发布