第9章结构体与共用体.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.尾插法 若将链表的左端固定,链表不断向右延伸,这种创建链表的方法称为尾插法。尾插法创建链表时,头指针固定不动,故必须设立一个搜索指针,向链表右端延伸,则整个算法中应设立三个链表指针,即头指针head、搜索指针p2、申请单元指针p1。尾插法最先得到的是头结点。 [例9-7]用尾插法创建一些正整数链表。 main() { struct linklist { int data; struct linklist *next; }; struct linklist *head,*p1,*p2; head=NULL;//空链表 p1=(struct linklist*)malloc(sizeof(struct linklist));/*申请空间*/ scanf(“%d”,p1-data);/*得到数据*/ while(p1-data0) { if(head==NULL) head=p1; else p2-next=p1;/*创建链接*/ p2=p1;/*保存当前结点*/ p1=( struct linklist*)malloc(sizeof(struct linklist));/*为下一个结点申请空间*/ scanf(“%d”,p1-data);/*得到下一个结点数据*/ } p2-next=NULL;/*尾结点指针域为空指针*/ } 为了使创建起来的链表方便用户使用,最好是将头插法和尾插法创建链表单独用函数描述,将头指针作为函数的返回值带回。这时的函数是指针函数 9.4.3 对链表的插入操作 [例9-8] 链表的插入操作。 void ins(struct linklist *head,int i,int x) //插入结点 { int j; struct linklist *p,*q; p=head; j=1; while((p!=NULL)(ji)) /*找插入位置*/ { p=p-next; j++; } q= (struct linklist *)malloc(sizeof(struct linklist));/*产生插入结点*/ q-data=x; q-next=p-next; /*q插入p之后*/ p-next=q; } 本函数可作一些修改,插入成功返回函数值1,插入不成功返回函数值0。 9.4.4 对链表的删除操作 假设删除链表中第i个结点,先找到第i-1个结点和第i个结点,然后将第i+1个结点链接在第i-1个结点后,再释放第i个结点所占空间,完成删除操作 [例9-9] 链表的删除操作。 void del(struct linklist *head,int i) //删除结点 { int j; struct linklist *p,*q; p=head; j=1; 2、枚举类型变量的定义 定义枚举类型的变量和前面定义的结构体、共用体变量相似。也有三种定义方法。 (1)先定义枚举类型再定义枚举变量 enum 枚举名 {枚举数据表}; enum 枚举名 变量表; 例如: enum WEEKDAY {Sun,Mon,Tue,Wed,Thu,Fri,Sat }; enum WEEKDAY today, tomorrow; (2)定义枚举类型的同时定义枚举变量 enum 枚举名 {枚举数据表} 变量表; 例如: enum WEEKDAY {Sun,Mon,Tue,Wed,Thu,Fri,Sat }today,tomorrow; (3)还可以定义无名枚举类型,即直接定义枚举类型变量 enum {枚举数据表} 变量表; 例如: enum { Sun,Mon,Tue,Wed,Thu,Fri,Sat }today,tomorrow; 枚举类型数据可以进行赋值运算。枚举类型是有序类型,枚举类型数据还可以进行关系运算。枚举类型数据的比较转化成对序号进行比较,只有同一种枚举类型的数据才能进行比较。 以下3种形式等价: ① 结构体变量.成员名 ②(*p).成员名 p-成员名 其中-称为指向运算符。 请分析以下几种运算: p-n得到p指向的结构体变量中的成员n的值。 p-n++ 得到p指向的结构体变量中的成员n的值,用完该值后使它加1。 ++p-n 得到p指向的结构体变量中的成员n的值加1,然后再使用它。 9.3.2 指向结构体数组的指针 11.6.2 指向结构体数组的指针 例 指向结构体数组元素的指针的应用 #inclu

文档评论(0)

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

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

1亿VIP精品文档

相关文档