- 1、本文档共128页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 动态内存分配;内容提要;8.1 动态分配内存的概念方法;计算机内存空间分布;示例:内存分配与住宿问题;动态内存分配的方法;动态申请与释放数组空间;动态分配数组空间的注意点一;例:动态数组的分配与撤销;动态分配数组空间的注意点二;动态内存分配的常见雷区;动态内存分配的排雷方案;关于野指针(Wild Pointer);动态二维数组;例:动态二维数组的实现;例:动态二维数组的实现;8.2 对象与动态内存分配;动态分配变量的生存期;概念:三种特殊的对象;三种没有名字的对象;深复制与浅复制; 图7.1 浅复制 ; 当浅复制析构时,如用默认的析构函数,则动态分配的自由存储区对象不能回收。如果在析构函数中有“delete p;”语句,则如果先析构函数obj1时,自由存储区对象已经释放,以后再析构obj2时出现了二次释放的问题。;例:深复制的实现——学生类;例:深复制的实现——学生类;例:深复制的实现——学生类;例:深复制的实现——学生类;例:深复制的实现——学生类;深复制与类封装的深入讨论;8.3 标准C++库中的string类;标准C++库中的string类;标准C++库中的string类;标准C++库中的string类;标准C++库中的string类;标准C++库中的string类;标准C++库中的string类;关于string类的思考和猜想;第一个版本:自定义string类;mystring类的实现;mystring类的实现;mystring类的实现;mystring类的实现;mystring类的后续; 线性表是最简单,最常用的一种数据结构。线性表的逻辑结构是n个数据元素的有限序列(a1,a2,…,an)。而线性表的物理结构包括:顺序表,链表 。;单链表的基本构成;链表节点的C风格实现;关于typedef(P173);链表的操作要点;第一个结点通常称为头节点,其对应的指针head称为头指针。head在使用中不可丢失,否则整个链表都会发生内存泄漏。
最后一个节点,通常称为尾节点tail,其地址域的值为NULL,表示链表到此结束。;链表的基本操作;链表的插入算法;;;;
研究以上算法,插在链表第一个结点之前与其他结点之前的算法有所不同。要使算法中没有特殊者,可以给每一个链表加上一个表头结点。;;;思考:更多的链表生成方式;链表查找算法(按关键字)查找;链表插入算法;思考:更多的链表插入函数;void del (node *p){
node *q;
q=p-link;
p-link=q-link;
delete q;
//如果要把该节点移入另一个链中,则可将q返回。
}
思考:仿造插入算法,思考更多的删除方式。;思考与练习;data;data;a;更多链表的实现内容(*);C风格链表实现的不足;单链表类型模板;单链表节点类;单链表节点类实现;单链表节点类实现;单链表类型模板;单链表类型模板;单链表模板类函数;templatetypename Tvoid ListT::MakeEmpty(){//清空链表
NodeT *tempP;
while(head-link!=NULL){
tempP=head-link;
head-link=tempP-link;
//把头结点后的第一个结点从链中脱离
delete tempP; } //删除(释放)脱离下来的结点
tail=head; } //表头指针与表尾指针均指向表头结点,表示空链;templatetypename T NodeT* ListT::Find(T data){
NodeT *tempP=head-link;
while(tempP!=NULLtempP-info!=data)
tempP=tempP-link;
return tempP; //搜索成功返回地址,不成功返回NULL
}
;templatetypename Tint ListT::Length(){ //链表长度
NodeT* tempP=head-link;
int count=0;
while(tempP!=NULL){
tempP=tempP-link;count++;}
return count;
}
;templatetypename Tvoid ListT::InsertFront(NodeT *p){
p-link=head-link;
head-link=p;
if(tail==head) tail=p;}
templatetypename Tvoid ListT::InsertRear(NodeT *p){
p-link
您可能关注的文档
- 输液反应、过敏反应、输血反应、双硫仑反应的处理.pptx
- 建筑计量计价课件.ppt
- 服务、责任、廉洁、奉献主题讲话稿.doc
- 医院感染管理法规.pptx
- 做好谈判的准备工作.docx
- 20190305安全文化手册.ppt
- 泉州中考英语历年完成句子专题.docx
- 增员项目组培训课件——沟通技巧培训课件.ppt
- 数值分析课件第2章-插值法.ppt
- 第9章-间歇机构.ppt
- 2025年成都市玩偶生产荧光涂鸦互动玩偶开发可行性研究报告.docx
- 2025年成都市海绵生产用于体育馆室外运动场地透水改造可行性研究报告.docx
- 2025年天津市体操鞋企业团建运动应用报告.docx
- 2025年上海市溶洞极限运动(速降)场地开发可行性研究报告.docx
- 2025年上海市涵洞工程施工技术应用可行性研究报告.docx
- 2025年上海市体育场馆设施扎带安全防护可行性研究报告.docx
- 2025年上海市牦牛育肥产业园区建设可行性研究报告.docx
- 2025年旅拍宠物陪伴拍摄项目可行性研究报告.docx
- 2025年上海市进口食品节庆主题快闪店可行性研究报告.docx
- 2025年上海市洗选厂尾矿综合利用产业化可行性研究报告.docx
文档评论(0)