六章节结构和链表.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
六章节结构和链表

第六章 结构和链表 ;6.1 结构类型;struct date { int month; int day; int year; }; ;6.1.2 结构变量定义及初始化; struct goods //定义一个商品结构类型 { char bh[6]; //商品编号 char mc[20]; //商品名称 float dj; //商品单价 int sl; //商品数量 char jhrq[8]; //进货日期 }g1={10012, shoes, 124,100, 080912};;6.1.3 结构变量的访问;【例6.1】某商场周年店庆期间对其会员进行积分换购活动,活动内容为允许每天前五名光临的会员用其积分换购相应的商品,假设每100个积分可以换购5元的商品,编程序求该商场店庆期间每天换购出去的商品金额以及会员换购后的剩余积分值。假设会员将全部可能积分全部进行换购。 分析:可以将会员卡号和积分组合在一起定义一个结构类型,用结构数组来描述若干会员的信息。如, struct card { char num[10]; int score; }c[10]; ;#include iostream.h #define N 5 void main( ) { struct card { char num[10]; int score; }c[N]; int i,s=0; for(i=0;iN;i++) { cinc[i].numc[i].score; s=s+5*(c[i].score/100); //每100分换购5元商品 c[i].score=c[i].score-100*(c[i].score/100); //该会员的剩余积分 } cout扣除积分后:\n; for(i=0;iN;i++) coutc[i].num\tc[i].scoreendl; cout积分换购金额=sendl; }; 链表是一种线性表。一个线性表是n(n≥0)个数据元素的有限序列。在计算机中,线性表可以选择连续存储和链接存储。 连续存储 把数据元素一个接一个地放在一组连续的存储单元之中,也就是把线性表中的数据元素存放在一片连续的存储域。连续存储的线性表称为数组。 因为数组的长度是固定的,而线性表的元素个数通常是不确定的,所以通常将数组定义成充分大,但这样会造成存储空间的浪费。用数组存储线性表的另一个缺点是在进行插入和删除操作时需要移动数据。; 链接存储 链接存储的线性??称为链表。元素之间靠指针链接。 ;a0; 链表中的每一个结点都是结构类型的变量,应包含两个部分: 数据域和指针域(即下一个结点的地址)。 前面图中的结点和表头指针的类型可以这样说明: struct node { int data; struct node *next; }; struct node *head; ;链表的常见操作有: 1. 建立链表; 2. 输出链表; 3. 确定链表的长度,即统计链表中结点的个数; 4. 查找链表中的某个结点; 5. 在链表中插入一个新的结点; 6. 删除链表中的某个结点。;6.2.1 链表的基本操作方法;关于函数malloc的说明: 功能是分配一个类型为node的结点变量的空间,并返回其首地址。 对该函数的原型说明包含在头文件stdlib.h中。 sizeof是一个求字节数的运算,malloc函数的参数中要给出申请空间的大小。 ②使用new运算符分配空间 p=new node; 该方法使用起来更加简单,但C语言中不支持此方法。为方便起见,本书中的程序多采用后一种方式来为新结点申请存放空间。 ;2.释放结点变量空间 当删除链表中的结点时,也应该及时地将其占用的存储空间返还给内存。假设下图中p所指向的结点是要删除的结点, 则相对应用malloc函数分配的空间,可以用如下语句释放。

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档