一、数据类型
1、基本类型
- 数值类型:short int long float double
- 字符类型:char(存储字符)
2、指针型(保存地址、而不是数据)
- NULL:不指向任何地址的特殊标记,值为0,初始化指针时常使用。如int *p=NULL
3、构造类型
- 数组:相同类型变量排成一列所构成的变量集
- 结构体:不同类型变量组合在一起构成的变量
typedef struct
{
int a;
float b;
char c;
...
};
typedef struct 结构体名
{
int a;
float b;
char c;
struct 结构体名 *d;
...
}结构体名;
typedef struct
{
int a;
float b;
char c;
}S;
S s;
s.a=1;
s.b=1.11;
s.c='A';
R=s.a;
4、void型:定义无返回值的函数
二、控制语句
1、判断语句
- 条件:表达式、变量或字面值
2、循环语句
- break结束整个循环
- continue结束后进行下一个循环
三、函数
返回值类型 函数名(参数定义列表)
{
...
}
调用方法:函数名(参数列表)
四、逻辑结构与存储结构
1、逻辑结构
- 没关系:集合
- 一对一:线性表
- 一对多:树
- 多对多:图
2、存储结构
- 顺序结构(随机存取)
- 链式结构
五、算法分析(时间复杂度和空间复杂度)
评价一个算法好坏的两个主要标准
六、数据结构(数据的逻辑结构和存储结构)
1、数据结构的基本概念
- 数据:客观事物的符号表示
- 数据元素:组成数据的基本单位(书目信息)
- 数据项:数据不可分割的最小单位(书目信息的每一项:书名、作者名)
- 数据对象:性质相同的数据元素的集合,数据的一个子集
- 数据结构:相互之间存在一种或多种特定关系的数据元素的集合
- 数据的逻辑结构:对数据之间关系的描述,与数据的存储结构无关。
(1)线性结构(一对一的线性关系):数据元素的有序集合,
集合中必存在唯一的一个“第一个元素”和“最后一个元素”,除最后一个元素外,其他数据元素均有唯一的“后继”,除第一个元素外,其他数据元素均有唯一的"前驱"。
(2)非线性结构(一对多的线性关系):可以细分为树形结构和图形结构。 - 数据的物理结构(存储结构):逻辑结构在计算机中的表示。
(1)顺序存储方法:逻辑上相邻物理上也相邻;
(2)链式存储方法:逻辑上相邻物理上不要求相邻,节点间逻辑关系用附加的指针字段表示;
(3)索引存储方法:建立存储节点信息,建立附加的索引表表示节点的位置。<关键字,地址>关键字标识唯一一个结点,地址作为指向结点的指针;
(4)散列存储方法:根据节点的关键字通过散列函数计算出结点的存储地址。本质上是顺序存储方法的扩展。
2、五大特性:
- 有穷性
- 确定性
- 可行性
- 输入性(0个或多个)
- 输出性(一个或多个)
3、算法评价:
- 正确性(基本)
- 可读性
- 健壮性
- 高效性
4、算法和程序的区别:
- 程序不一定满足有穷性(操作系统);
- 程序中的指令必须是机器可执行的,算法中的指令则无此限制;
- 算法:对问题的解;
程序:算法在计算机上的特定实现;
一个算法用程序设计语言描述,才是一个程序 ; - 数据结构+算法=程序;