一、相关概念
- 数据结构:是指相互之间存在一种或多种特定关系的数据元素的几乎,包括:逻辑结构、存储结构和对数据的运算;
- 数据的逻辑结构:对数据之间关系的描述,与数据的存储结构无关,同一种逻辑结构可以有多种存储结构,主要分为:线性结构、非线性结构;
- 数据的物理结构:数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,对应的存储结构即顺序存储结构和链式存储结构。顺序映像是借助数据元素在存储器中的相对位置来使数据元素之间的逻辑关系;非顺序映像是借助指针表示数据元素之间的逻辑关系。在数据结构中有四种常用的存储方法:顺序存储(数组)、链式存储(指针)、索引存储(< 关键字,地址 >)、散列存储(散列函数,顺序存储的扩展)
- 算法:可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤,或是看作按要求设计好的有限的确切的计算序列;
- 算法的特性:有穷性、确定性、可行性、有明确的输入输出;
- 抽象数据类型(Abstract Data Type, ADT):数据对象集、数据关系集(数据对象的组织方式)、操作集;
部分知识点总结:
- 对于手写代码题目,只需写出一个或多个可以解决问题的有着清楚接口描述的函数即可(注意加上必要的注释);
- 引用类型:
void f(int *&x) // 指针型变量在函数中需要改变时的写法
{
++x;
}
- 如果函数的参数是二维数组,第二个中括号内必须写上数组长度:
void f(int x[][5]){......}
void f(int x[][5][5]){......}
// 此时的数组名即为指针,每行数据连续存放在栈上,必须确定行数;
- 原地工作:一个可执行程序除了需要内存空间来寄存本身的指令、常数、变量和输入数据外,还需要额外的空间,如果这个额外的空间相对于问题的规模(输入数据)来说是个常数,就称之为原地工作;
备注:
针对 2020考研 的个人笔记总结。