网站大量收购独家精品文档,联系QQ:2885784924

c程序设计二第五讲链表文件材料.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图 删除第n个结点 (a) head指示已有链表 Head p 101 Zhang 90 103 Wang 80 NUL L 105 Li 60 102 Zhao 70 (b) 删除第3个结点 q p Head 101 Zhang 90 103 Wang 80 NUL L 105 Li 60 102 Zhao 70 指针的赋值方法: q-next=p-next; free(p); 程序 struct student *delete(struct student *head, int num) { struct student *p,*p1;//p:删除点,p1:删除点前一个节点 if(head==NULL) 输出提示信息;//链表为空时没有要删除的节点,这里也可以不判断,可直接使用绿色和蓝色的代码 else {p1=p=head; while(p!=NULLp-num!=num) {p1=p;p=p-next;}//查找删除点 if(p==NULL) 输出提示信息//没有找到要删除的节点 else if(p==head) {head=p-next;free(p);}/*注意:务必判断头结点是否是需要删除的节点*/ else {p1-next=p-next;free(p);} } //删除 return head; } * 假定一台电脑由显示器、CPU、内存、硬盘和机箱5个部件组成,每个部件包括牌子、型号和价格3个属性,从一个文本文件中读取一台电脑的5个部件的信息,然后算出该电脑的总价格,并把5个部件的属性和总价格输出另一个文件中。 struct BuJian { char PinPai; char XingHao; int JiaGe; }; struct BuJian { char PinPai; char XingHao; int JiaGe; }; struct DianNao { BuJian xsq; BuJian yp; BuJian cpu; BuJian nc; BuJian jx; }; main() { struct DianNao dn[3]; int i; FILE * fp; fp = fopen(e:\\a.txt,r); for(i=0;i3;i++) { fscanf(fp,%s %s %d,dn[i].xsq.PinPai,dn[i].xsq.XingHao,dn[i].xsq.JiaGe); fscanf(fp,%s %s %d,dn[i].yp.PinPai,dn[i].yp.XingHao,dn[i].yp.JiaGe); fscanf(fp,%s %s %d,dn[i].cpu.PinPai,dn[i].cpu.XingHao,dn[i].cpu.JiaGe); fscanf(fp,%s %s %d,dn[i].nc.PinPai,dn[i].nc.XingHao,dn[i].nc.JiaGe); fscanf(fp,%s %s %d,dn[i].jx.PinPai,dn[i].jx.XingHao,dn[i].jx.JiaGe); } fclose(fp); 第五讲 链表 7 Qian Sun Li Zhou Wu Wang null Head 7 13 1 43 25 37 链表结构 (1)头指针变量head──指向链表的首结点。 (2)每个结点由2个域组成: 1)数据域──存储结点本身的信息。 2)指针域──指向后继结点的指针。 (3)尾结点的指针域置为“NULL(空)”,作为链表结束的标志 链表结构的定义 struct student {char name[10]; struct student *next; }; next为student类型指针变量,指向下一个结点的指针域。 结点的变量或指针变量的定义: struct student node,*head; node可以存放一个学生结点 指针head可以存放学生结点的地址。 例:建立一个简单链表,它由3个学生数据的节点组成。输出各节点中的数据。 #define NULL 0 struct student {long num; float score; struct student *next; }; main() {struct student a,b,c,*head,*p; a.num=10101;a.score=89.5; b.num=10103;b.score=90; c.num=10107;c.score=85; head=a;

文档评论(0)

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

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

1亿VIP精品文档

相关文档