查找[1].双向链表

查找[1].双向链表

ID:38470884

大小:25.00 KB

页数:3页

时间:2019-06-13

查找[1].双向链表_第1页
查找[1].双向链表_第2页
查找[1].双向链表_第3页
资源描述:

《查找[1].双向链表》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、查找  假若我们要在一个带表头的双向循环链表中查找数据域为一特定值的某个结点时,我们同样从表头结点往后依次比较各结点数据域的值,若正是该特定值,则返回指向结点的指针,否则继续往后查,直到表尾。  下例就是应用双向循环链表查找算法的一个程序。  #include<stdio.h>  #include<malloc.h>  #defineN10  typedefstructnode  {   charname[20];   structnode*llink,*rlink;  }stud;  st

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

3、==NULL)    {     printf("不能分配内存空间!");     exit(0);    }    p->rlink=s;    printf("请输入第%d个人的姓名",i+1);    scanf("%s",s->name);    s->llink=p;    s->rlink=NULL;    p=s;   }   h->llink=s;   p->rlink=h;   return(h);  }  stud*search(stud*h,char*x)  {   stu

4、d*p;   char*y;   p=h->rlink;   while(p!=h)   {    y=p->name;    if(strcmp(y,x)==0)    return(p);    elsep=p->rlink;   }   printf("没有查找到该数据!");  }  voidprint(stud*h)  {   intn;   stud*p;   p=h->rlink;   printf("数据信息为:");   while(p!=h)   {    printf(

5、"%s",&*(p->name));    p=p->rlink;   }   printf("");  }  main()  {   intnumber;   charstudname[20];   stud*head,*searchpoint;   number=N;   clrscr();   head=creat(number);   print(head);   printf("请输入你要查找的人的姓名:");   scanf("%s",studname);   searchpoi

6、nt=search(head,studname);   printf("你所要查找的人的姓名是:%s",*&searchpoint->name);  }

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

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

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