高级数据结构(第二节课)__2018.07.10
构造函数是绝对不允许定义成虚的。
编译器在编译的时候,非静态、友元的成员会加上this指针。
把变量给对象调用构造函数,对象给变量调用运算符重载。
重载加法运算符。
把加法重载。
c=a.operator+(b);
对象和对象相加。
变量和对象相加。
作为成员函数,里面必然会加上this指针。
重载输出:osteream & operator<<(ostream &out) const
{
it<<cout;
return out;
}
三目运算符不能重载。
迭代器中不喜欢使用后置++,面向对象的后置++会产生很多临时对象。
递归调用。
引用就是对象本身,不会产生新的临时对象。
内置类型和自己设计的类型,处理法则是不一样的。自己设计的类型的处理法则是不一样的。
在release中,断言assert是不起作用的。
s指针p指针q指针的用法。
q指针表示要删除的。
p表示申请。
s表示一般的吧,我也没听清。
写在纸上的代码一定要可以运行。
递归是使用栈机制实现的。
递归程序一般都是自己维护一个栈,以便状态的回溯。
代码要写得让人一看,。。。嗯,这代码写的不错。
同属一个集合,表示集合中没有相同的元素。
属性结构:一对多。
节点的度:一个节点有几个分支度就为及几。度为0的节点就为“叶子节点”。
树形结构:树的高度、
二叉树:左右看似对称,其实完全不同。两边是两个完全不同的东西。访问了左边,不等同于访问了右边。
叶节点没有分支。
满二叉树,每一层均达到最大分支个数。
完全二叉树:除最后一层外,其余层都是满二叉树。
满二叉树也是一种完全二叉树。
周四(2018.07.12)要检查的作业:写一个优先级队列、什么是无锁队列,怎么实现。算二叉树的size、Depth、FindValue、NiceInOrder、NicePastOrder。
双亲为NULL空的节点为根节点。
逻辑结构(设计时)、物理结构(在内存中的表示)