数据结构-基础篇

一、数据类型

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、算法和程序的区别:

  • 程序不一定满足有穷性(操作系统);
  • 程序中的指令必须是机器可执行的,算法中的指令则无此限制;
  • 算法:对问题的解;
    程序:算法在计算机上的特定实现;
    一个算法用程序设计语言描述,才是一个程序 ;
  • 数据结构+算法=程序;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值