数据结构入门系列之——基本概念

概念辨别

数据: 信息的载体,能够被计算机识别、存储和加工处理,数据包括文字、表格、图像等。
信息: 数据的内涵,即数据所表达的意义。
数据元素:数据的基本单位(有时称为结点、记录等),通常把数据元素作为一个整体进行处理。例如,一个班的学生数据包括张三、李四等数据元素。有时一个数据元素可以由若干个数据项(也可称为字段、域、属性)组成。 
数据项:具有独立意义的不可分割的最小标识单位。

计算机识别、存储和加工处理的对象称为数据

typedef struct 
{
     	int ID;
	int x;
	int y;      ————————————>数据项
}Point;         ————————————>数据元素
vector<Point> Points    ————>数据

数据结构

数据结构:相互之间存在一种或多种特定关系的数据元素的集合。这些数据元素不是孤立存在的,而是有着某种关系,这种关系构成了某种结构。

数据结构可以看成是带结构的数据元素的集合。

逻辑结构:数据元素之间的逻辑关系的整体。它是数据结构在用户面前呈现的形式。(相邻关系)
存储结构 :数据元素及其关系在计算机存储器中的存储方式,也称为数据的物理结构
运算:施加在该数据上的操作。

1.在C++中,语句 int a[10];然后用户可以用
a[0]…a[9]来访问数据中的每一个元素,这样的访问时数据数据结构的逻辑结构
2.C语言中,定义了数组 int a[10],*p;
p=a; 语句p=p+1代表p指针指向了数据的第二个元素的地址,对于p指针是使用的数组的物理结构来访问数据

逻辑结构

逻辑结构可以分为:集合(松散);线性结构;树形结构;图形结构。
可以用二元组表示逻辑结构:
数据结构入门系列之——基本概念_第1张图片
D是数据元素的有限集合,即D是由有限个数据元素(简称为元素)所构成的集合。
R是D上的关系的有限集合,即R是由有限个关系 r j r_j rj(1≤j≤m)所构成的集合。
r j r_j rj是指从D→D的关系。

物理(存储)结构

存储结构分为:链式存储结构、顺序存储结构、索引存储结构、散列存储。其中顺序存储具有随机存取特性。索引存储结构增加索引表,查找速度快。

一种抽象数据类型包括:数据的取值范围、数据操作

算法

算法目标:

正确性、可使用性、可读性、健壮性、高效率与低存储量需求。

算法特性:

有限性、确定性、可行性、输入性、输出性

算法分析

分为时间复杂度和 空间复杂度
时间复杂度 :O(n)
空间复杂度:O(n)
对算法进行存储空间分析时,只考察临时变量所占空间。换句话说,函数形参不参与空间复杂度的计算。

O ( 1 ) < O ( l o g 2 n ) < O ( n ) < O ( n l o g 2 n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) O(1)O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)

C/C++内存分配

int *p C C++
变量分配内存 p=(int*)malloc(sizeof(int) p=new int;
数组分配内存 p=(int*)malloc(sizeof((int)*n ) p=new int[n];
释放内存 free ( p);p=NULL; delete p;/delete []p;

你可能感兴趣的:(数据结构)