主要记录了数据结构的学习心得和总结,方便以后参阅
第一章 引论
该部分主要介绍了一些基本概念和数学基础
1、递归
当一个函数用自身来定义时就称为递归(recursive)。
递归的基本法则:
1)基准情形。必须存在某些基准情形作为递归的终止形式。
2)不断推进。总能够朝着一个基准情形推进。
3)设计法则。假设所有递归调用都能运行。
4)合成效益法则。在求解一个问题的同一实例时,切勿在不同的递归调用中做重复的工作。
2、c++类
1)explicit构造函数
所有的单参数构造函数都必须时explicit的,以避免后台的类型转换,例如Vector<Object> obj = 37;
2)常量成员函数
只进行检测但不改变其对象的状态的成员函数称为访问函数;
改变其对象状态的成员函数称为修改函数;
例如,
访问函数:isEmpty();
修改函数:makeEmpty();
默认情况下,所有成员函数都是修改函数,使其成为访问函数必须在参数类型列表结尾的圆括号后添加const关键字,int read() const;;
3、动态对象创建
Object* obj;
obj = new Object();
obj = new Object;
两种方法都可以,推荐第二种;
4、参数传递
1)按值调用适用于不被函数更改的小对象,如int;
2)按常量引用调用适用于不被函数修改的大对象,如vector<int>;
3)引址调用适用于所有可以被函数修改的对象,goole代码风格中推荐所有输入参数使用引用,输出参数使用指针形式;