- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章自义数据类型
* 8.10.4 链表的运算 图8.14 单链表删除结点示意 * 8.10.4 链表的运算 图8.14 单链表删除结点示意 * 8.10.4 链表的运算 图8.14 单链表删除结点示意 * 8.10.4 链表的运算 实现上述步骤的C++语句如下: 删除单链表中第i个位置结点的算法如下: p-next=p-next-next; //结点删除算法 * 8.10.4 链表的运算 1 int ListDelete(LinkList *L,int i,ElemType *ep) 2 { //删除第i个结点,并由*ep返回其值 3 LinkList p=NULL,q=*L; //q指向头结点 4 while(q!=NULLi=1) { //直到第i个结点 5 p=q; //p是q的前驱 6 q=q-next; //q指向直接后继结点 7 i--; 8 } 9 if(p==NULL||q==NULL) return 0; 10 p-next=q-next; //结点删除算法 11 if(ep!=NULL) *ep=q-data; 12 delete q; //释放结点 13 return 1; //操作成功返回真(1) 14 } * 结束 * 8.4.1 指向结构体的指针 结构体对象的地址:对象名。例如: 显然,结构体对象的地址值(m)与第一个成员的地址值(m.no)相同。 struct STAFF m, *p; //指向结构体对象的指针 p=m; //取结构体对象的地址 * 8.4.1 指向结构体的指针 图8.3 结构体对象及成员指针示意 * 8.4.1 指向结构体的指针 假设p是指向结构体对象的指针,通过p引用结构体对象成员有两种方式: ①对象法:(*p).成员名; ②指针法:p-成员名。 * 8.4.1 指向结构体的指针 表8-2 指针成员引用运算符 运算符 功能 目 结合性 用法 - 指针成员引用运算 双目 自左向右 pointer-member p-no=10002; //将10002赋值给对象中的no成员,指针成员引用运算结果是左值(即成员本身) p-salary=p-salary+500.0; //在表达式中引用指针指向的成员 p-no++; //按优先级等价于(p-no)++ * 8.4.1 指向结构体的指针 (1)指针成员引用运算符(-)左边运算对象必须是指向结构体对象的指针,右边member必须是结构体对象中的成员名。其引用形式为: 结构体指针-成员名 * 8.4.1 指向结构体的指针 (2)如果成员本身又是一个结构体对象指针,就要用指针成员引用运算符一级一级地引用成员。例如: DATE d={1981,1,1}; TEACHER { //教师信息类型 int no; //工号 char name[21]; //姓名 DATE *pbirthday; //出生日期 } a={1001,Li Min,d}, *p=a; p-no=10001; //通过指针p引用a的no成员 p-pbirthday-year=2008; //通过指针p-pbirthday引用d的year成员 * 8.5 结构体与函数 将结构体对象作为函数实参传递到函数中,采用值传递方式。例如: struct DATA { int data; //整型成员 char name[10]; //数组成员 }; void fun1(DATA x); //函数原型 void fun2() { DATA a={1,LiMin}; fun1(a); //函数调用 } * 8.5.2 结构体数组作为函数参数 将结构体数组作为函数参数,采用地址传递方式。函数调用实参是数组名,形参必须是同类型的结构体数组。例如: 采用地址传递方式,形参数组的首地址与实参数组完全相同。 void fun3(DATA X[]); //函数原型 void fun4() { DATA A[3]={1,LiMin,2,MaGang,3,ZhangKun}; fun3(A); //函数调用 } * 8.5.3 结构体指针或引用作为函数参数 将结构体指针作为函数参数,采用地址传递方式。例如: void fun5(DATA *p); //函数原型 void fun6() { DATA a={1,LiMin}; fun3(a); //函数调用 } * 8.5.4 函数返回结构体对象
您可能关注的文档
最近下载
- 基层儿科医务人员服务能力提升学习班答案-2024华医网继续教育答案.docx VIP
- 中学生素质发展评价手册42p.pdf VIP
- 《反对党八股》名师教学课件 (1).pptx VIP
- 薛法根:《风娃娃》(二年级).docx
- 40篇英语短文搞定高考3500个单词(全部含翻译-重点解析).doc
- SY∕T 4113.7-2020 管道防腐层性能试验方法 第7部分:厚度测试.pdf
- 阿里全球数学竞赛姜萍成绩造假PPT课件.pptx VIP
- FM知识考试试题-必做经典大题.pdf
- 旅游管理职业生涯规划.pdf
- 江苏省南京市2025届高三零模作文“点外卖”与“送外卖”导写(真题呈现+审题立意+素材积累+写作示例+考场范文).docx VIP
文档评论(0)