C语言链表.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
链表的c语言实现(一) 准 一、 但我float型(存在0.5分)数 float score[30]; 但是,在使用数 在很多的情况下,你并不能确定要使用多大的数 那么有没有其它的方法来解决 所 1、不需要 2、分配的空 二、如何理 要函数 1、malloc函数 malloc函数的原型为: void *malloc (unsigned int size) 其作用是在内存的size的指针。函数未能成功分配存储空间(如内存不足)就会返回一个NULL指。所以在函数时应该检测返回值是否为NULL并 下例是一个 #include #include main() { int count,*array; /*count是一个array是一个整型指,也可以理解*/ if((array(int *) malloc(10*sizeof(int)))==NULL) { printf(不能成功分配存); exit(1); } for (count=0;count〈10;count++) /**/ array[count]=count; for(count=0;count〈10;count++) /*打印数*/ printf(%2d,array[count]); } 上例中10个整型存if((array(int *) malloc(10*sizeof(int)))==NULL)语句可以分为以下几步: 1)分配10个整型的个指向其起始地址的整型指 2)把此整型指地址array 3)NULL 2、free函数 由于内存区域free函数。 其函数原型是: void free(void *p) 作用是指针p所指向的内存区。 其参数p必malloc函数或calloc函数(另一个函数)时返回的指针。free函数 注意:指针的指针本身。例: int *p1,*p2; p1=malloc(10*sizeof(int)); p2=p1; …… free(p2) /*或者free(p2)*/ malloc返回p1,又把p1的p2,所以此p1,p2都可作free函数的参数。 malloc函数是 free函数是 所以由函数就可以实现对内存区域进行动态分配并进行简单的管理了。 一、 有了 所数据结构。 所 1、数据域:用来存 2、指针域:用来存指针。 例: typedef struct node { char name[20]; struct node *link; }stud; char name[20]是一个用来存指针*link是一个用来存指针。 定的数据,如有后NULL。 下面就来看一个建立 #include stdio.h #include malloc.h /*包含函数的头文件*/ #define N 10 /*N为人数*/ typedef struct node { char name[20]; struct node *link; }stud; stud * creat(int n) /*建立函数,形参n为人数*/ { stud *p,*h,*s; /* *h保存表指针,*p指向当前*s指向当前*/ int i; /*计数器*/ if((h=(stud *)malloc(sizeof(stud)))==NULL) /*分配空*/ { printf(不能分配内存空!); exit(0); } h-name[0]=\0; /*把表*/ h-link=NULL; /*把表*/ p=h; /*p指向表*/ for(i=0;in;i++) { if((s= (stud *) malloc(sizeof(stud)))==NULL) /*分配新存*/ { printf(不能分配内存空!); exit(0); } p-link=s; /*把s的地址p所指向的p和s所指向的*/ printf(请输入第%d个人的姓名,i+1); scanf(%s,s-name); /*在当前s的数据域中存*/ s-link=NULL; p=s; } return(h); } main() { int number; /*保存人数的*/ stud *head; /*head是保存指针*/ number=N; head=creat(number); /*把所新建的head*/ } 这样就写好了一个可以建立包含N个人姓名的 写。 二、 建立了一个 1、 对单链表进行查找的思路为:对单链表的结点依次扫描,检测其数据域是否是我们所要查好的值,若是返回该结点的指针,否NULL。 因指针,即可依次 以下是 #include stdio.h #include malloc.h #include string.h /*包含一些字符串函数的头文件*/ #define N 10 typedef struc

文档评论(0)

企业资源 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档