一、什么是数据结构
1、数据结构的起源
-
是一种研究数据之间关系的学科
-
程序设计 = 数据结构 + 算法
2、数据结构的基本概念
typedef struct Student { char name[20]; // 结构成员就是 数据项 int id; short arg; float score; }Student; int main() { Student stu = {"张三",1001,20,100}; // 结构变量 stu 就是数据元素 // 初始化的数值就是 数据 Student stus[5] = { {"张三",1001,20,100}, {"张三",1001,20,100}, {"张三",1001,20,100}, {"张三",1001,20,100}, {"张三",1001,20,100} }; // stus结构体数组 就是数据结构一种 // 算法 for(int i=0; i<5; i++) { printf("%s %d %hd %f\n",stus[i].name,stus[i].id,stus[i].age,stus[i].score); } }
3、数据结构的三个方面
-
数据的逻辑关系:元素之间具有什么样关系(集合、线性、树、图)
-
数据的存储关系:元素在内存中是如何存储的(顺序、链式),也叫物理结构
-
数据结构的算法:数据结构所有具有的功能或擅长的功能
二、数据元素之间的逻辑关系
-
集合:数据元素之间除了同属一个集合外没有其它任何关系
-
线性结构:数据元素之间存在一对一的关系,也叫线性表\表 (数组、链表)
-
树型结构:数据元素之间存在一对多的关系,例如:族谱结构、组织结构
-
图型结构:数据元素之间存在多对多的关系,例如:地图线路
三、数据结构的存储结构
1、顺序存储结构
特点:存储在一段连续的内存中,使用相对位置来表示相互之间的关系
2、链式存储结构
特点:存储在相互独立的内存中,每个存储都称为节点,通过在节点中增加一个指针域,来表示后继\前趋节点的地址
四、数据结构的运算
创建(create\creat)销毁(destroy) 插入(insert)添加(add)删除(delete)访问(access)查询(query)修改(modify)遍历(show\print)合并(merge)