C语言课件王曙燕)chp9 指针.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:Malloc()使用 #include stdlib.h #include stdio.h #include string.h struct grade { char name[20]; int score; }; 应用举例:链表的创建 5、链表的输出 5、链表的删除 5、链表的插入(前提:链表有序) Struct student *insert (struct student *head,struct student *stud) {struct student *p0,*p1,*p2; p1=head; p0=stud; /*p1指向第一个结点,p0指向           要插入的结点*/ if (head=NULL) {head=p0;p0-next=NULL;} /*原来链表为空,使p0指向的结点为头结点*/ else {while((p0-nump1-num)(p1-next!=NULL)) { p2=p1; p1=p1-next;} /*p2指向刚才p1指向的结点,                       p1后移一个结点*/ if(p0-nump1-num) {if (head==p1) head=p0; /*插到原来第一个结点之前*/ else p2-next=p0; /*插到p2指向的结点之后*/ p0-next=p1;} else {p1-next=p0;p0-next=NULL;}} /*插到最后的结点之前*/ n=n+1; /*结点数加一*/ return(head) } struct student *create(void) { struct student *head; struct student *p1,*p2; n=0; p1=p2=(struct student *)malloc(LEN); if(p1==NULL) { printf(空间分配失败!); return NULL; } printf(输入,,,,号和成绩,格式(1002,87):\n); scanf(%d,%d, p1-num,p1-score); head=NULL; #includemalloc.h #define NULL 0 #define LEN sizeof(struct student) struct student { long int num; float score; struct student *next }; int n; 拘左求杭鱼戈榜依债钝临韧靠幂夸疮招瘸缄着皑耿棍似俏班觉查孕殴口员C语言课件(王曙燕)chp9 指针C语言课件(王曙燕)chp9 指针 while(p1-num!=0) { n=n+1; if(n==1) head=p1; else p2-next=p1; p2=p1; p1=(struct student *)malloc(LEN); if(p1==NULL) { printf(空间分配失败!); return NULL; } printf(输入,,,,号和成绩,格式(1002,87):\n); scanf(%d,%d, p1-num,p1-score); } p2-next=NULL; return (head); } 迁蜒灌悲舵嚷咀雇扫濒淌膝琉浑轰芭鼎怜潮恩埋嫩汇靠互瓤疲炉浑称慷运C语言课件(王曙燕)chp9 指针C语言课件(王曙燕)chp9 指针 有3个指针:Head:头指针;P: 当前节点的指针 从头结点开始,依次访问链表中的每一个结点,输出每个结点。 null head p p p p p 投附定刻原榴寨五蔓某斥协呛壹宠诺芝鹰茅冻石朗勤腑傲丈题兢困腆釜刊C语言课件(王曙燕)chp9 指针C语言课件(王曙燕)chp9 指针 void print(struct student *head) { struct student *p; printf(链表如下:\n); p=head; printf(-------- -------- -------- -------- -------- --------\n); while(p!=NULL) { printf(|%2d|%3d|-,p-num ,p-score ); p=p-next; /*如

文档评论(0)

wcc543543 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档