数据结构

发布时间 2023-12-25 18:31:22作者: 龠菜粤爱玩
  • 数据结构
  1. 概念

a,分析问题,将实际问题抽象出一个人数学模型

b,设计一个解决问题的模型

c,编写代码,调试,测试得到最后结果

  1. 什么是数据结构

数据

客观事物用符号表示

结构·

数据之间的存在的关系

数据结构:计算机存储和组织数据符号,相互之间的关系集合

  1. 数据结构分类:

逻辑结构 :数据之间的关系(描述数据之间的关系)

a,集合结构

数据与数据之间除了属于同一集合,再无其他关系

b,线性结构

数据之间呈现一对一关系,线性关系

C,树形结构

数据与数据之间呈现一对多关系,层次,从属,(前只有一个元素,后可有多个元素)

d,图形关系

数据与数据之前呈现多对多关系

存储结构:描述的存储

顺序存储

离散存储(链式存储)

数据运算:

运算:对存在关系的数据进行处理

增删改查

  • 算法

算法:解决实际问题的步骤描述

实现特定功能的步骤方法

通常解决一个问题有多种方式(算法),不同的算法的效率不同

  • 消耗的时间

算法执行的时间,时间越少

  • 消耗的空间

算法执行的时候所占用的内存资源越少

事先估算法:

时间:

时间复杂度

语句频度算法中一条语句重复的次数

时间复杂度,算法所有语句频度之和

T(n),时间复杂度,n,问题规模 大O表示,O(n),O(n^2) 常数 O(1)

空间:

空间复杂度,

程序执行时所占用的内存资源大小,

S(n),n问题规模:

常数阶: O(1) int a = 1;

线性阶: O(n) 循环

指数阶: O(n^2) for(for)

对数阶 O(log n) for( Ii = 0;i< n:I = i*2)

  • 线性表

线性表,线性结构,关系为线性关系,数据与数据之间呈现一对一的关系

线性表具有唯一前驱,唯一后继,首元素没有前驱,尾元素没有后继

顺序表的存储:

按照顺序存储的线性表,顺序表(逻辑结构是线性关系,存储结构为顺序存储)

顺序表的操作:

创建表

删除表

顺序表元素的增删改查,遍历

顺序表的表示:

结构体 {

数组 / 指针malloc

当前顺序表的个数

整个顺序表的长度

}

struct 名字{

元素类型 名字[];

int 长度;

int 个数;}

全局变量,静态变量 ,未初始化值零