1 / 5
文档名称:

C++程序设计习题答案第七章.docx

格式:docx   大小:36KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C++程序设计习题答案第七章.docx

上传人:飞行的振中 2022/7/27 文件大小:36 KB

下载得到文件列表

C++程序设计习题答案第七章.docx

相关文档

文档介绍

文档介绍:第七章
动向内存分派****题
一、基本观点与基础知识自测题
填空题
C/C++定义了4个内存区间:(1)、(2)、(3)

(4)。
答案:(1)代码区,寄存程序代码;
2)全局
delete[]指向该数组的指针变量名;
后者多一个方括号,如果delete语句中少了方括号,因编译器认为该指针是指向数组第一
个元素的指针,会产生回收不彻底的问题(只回收了第一个元素所占空间),加了方括号后
就转变为指向数组的指针,回收整个数组。delete[]的方括号中不需要填数组元素数,系统
自知。即便写了,编译器也忽略。
用delete删除p所指向的无名对象时,p指针也同时被删除了,对不对为什么
答:不对。注意这时释放了p所指向的无名对象占用的内存空间,也就是撤除了该无名对象,
称动向内存释放(dynamicmemorydeallocation),但指针p本身并没有撤除,它仍旧存在,该指针所占内存空间并未释放。
为什么动向成立类对象数组时,类的定义一定要有缺省的结构函数
答:new后边类(class)种类也能够有参数。这些参数即结构函数的参数。但对创立数组,没有参数,只能调用缺省的结构函数。
要实现深拷贝,自定义的拷贝结构函数应当怎样设计
答:如果类中有一个数据成员为指针,该类的一个对象中的这个指针配的一个堆对象。深拷贝时要给新成立的对象独立分派一个堆对象。该设计为:先拷贝对象主体,再为新建对象的指针分派一个堆对象,拷贝新对象的堆对象。即分三步达成。

,指向了动向分
这时拷贝的结构函数应最后用原对象的堆对象
:为了直接接见结点的私有成员数据,以简化程序。
双向链表与单向链表相比,操作上有什么优点
答:双向链表能够很方便地找到表结点的前驱和后继。单链表只能找后继。如要找前驱,必
须从表头开始搜寻,并一般要用两个工作指针。
对照次序栈与链栈各自的长处和缺点。
答:次序栈能够随机接见其中的元素,而链栈只能次序接见。次序栈必须先开一定大小内存空间,履行起来简单,速度快,但可能溢出。链栈内存空间随用随开,不会溢出,但履行复杂(不断地动向分派),速度慢。
写出二叉树的定义。
答:二叉树是结点的一个有限会合,该会合或为空,或是由一个根结点及两棵分别称为左子树和右子树的(注意有左右之分)互不相交的二叉树组成,其中左右子树分别能够为空子树或均为空树。
什么是二叉树的遍历
答:所谓二叉树的遍历(binarytreetraversal),就是遵照某种序次,查巡二叉树的所有结点,
每个结点都被接见一次,而且仅接见一次。所谓“接见”指对结点实行某些操作,但不损坏它原来的数据结构。
二、编程与综合练****题
:删除链表中所有数据域为指定值的结点和取出链
表中第K个元素(从
1开始计数)。
解:这两个成员函数添在单链表类模板中()
本例数据域用了标准类