- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 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 函数返回结构体对象
您可能关注的文档
最近下载
- 《2023年甘肃省职业院校技能大赛职业英语技能赛项职业英语能力测试模块试题口语决赛样题》.pdf
- 建筑工程建筑面积计算规范GBT50353-2022[13].pdf
- JB/T 9628-1999 汽轮机叶片 磁粉探伤方法.pdf
- 0i-TF PLUS车床操作说明书.pdf
- 陈传明管理学笔记1.马工程——总论.pdf
- 06J925-2 压型钢板、夹芯板屋面及墙体建筑构造(二).docx VIP
- 《高速公路基础设施数字化建设数据标准》.pdf VIP
- 计算机组装与维护 知识点整理.pdf VIP
- 《员工满意度研究国内外文献综述》3900字.docx VIP
- 勤俭节约主题班会 主题班会.ppt VIP
文档评论(0)