链表的c语言实现之删除结点

链表的c语言实现之删除结点

ID:13009390

大小:27.50 KB

页数:3页

时间:2018-07-20

链表的c语言实现之删除结点_第1页
链表的c语言实现之删除结点_第2页
链表的c语言实现之删除结点_第3页
资源描述:

《链表的c语言实现之删除结点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、链表的C语言实现之删除结点假如我们已经知道了要删除的结点p的位置,那么要删除p结点时只要令p结点的前驱结点的链域由存储p结点的地址该为存储p的后继结点的地址,并回收p结点即可。  以下便是应用删除算法的实例:  #include<stdio.h>  #include<malloc.h>  #include<string.h>  #defineN10  typedefstructnode  {   charname[20];   structnode*link;  }stud;  stud*creat(intn)/*建立新的链表的函数*/  {

2、   stud*p,*h,*s;   inti;   if((h=(stud*)malloc(sizeof(stud)))==NULL)   {    printf("不能分配内存空间!");    exit(0);   }   h->name[0]=’’;   h->link=NULL;   p=h;   for(i=0;i<n;i)   {    if((s=(stud*)malloc(sizeof(stud)))==NULL)    {     printf("不能分配内存空间!");     exit(0);    }    p-

3、>link=s;    printf("请输入第%d个人的姓名",i1);    scanf("%s",s->name);    s->link=NULL;    p=s;   }   return(h);  }  stud*search(stud*h,char*x)/*查找函数*/  {   stud*p;   char*y;   p=h->link;   while(p!=NULL)   {软件开发网    y=p->name;    if(strcmp(y,x)==0)    return(p);    elsep=p->link;  

4、 }   if(p==NULL)   printf("没有查找到该数据!");  }  stud*search2(stud*h,char*x)/*另一个查找函数,返回的是上一个查找函数的直接前驱结点的指针,*/  /*h为表头指针,x为指向要查找的姓名的指针*/  /*其实此函数的算法与上面的查找算法是一样的,只是多了一个指针s,并且s总是指向指针p所指向的结点的直接前驱,*/  /*结果返回s即是要查找的结点的前一个结点*/  {   stud*p,*s;   char*y;   p=h->link;   s=h;   while(p!=N

5、ULL)   {    y=p->name;    if(strcmp(y,x)==0)    return(s);    else    {     p=p->link;     s=s->link;    }   }   if(p==NULL)   printf("没有查找到该数据!");  }  voiddel(stud*x,stud*y)/*删除函数,其中y为要删除的结点的指针,x为要删除的结点的前一个结点的指针*/  {   stud*s;   s=y;   x->link=y->link;   free(s);  }  main(

6、)  {   intnumber;   charfullname[20];   stud*head,*searchpoint,*forepoint;   number=N;   head=creat(number);   printf("请输入你要删除的人的姓名:");   scanf("%s",fullname);   searchpoint=search(head,fullname);   forepoint=search2(head,fullname);   del(forepoint,searchpoint);  }软件开发网

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。