1、基本术语
数据:数据可以定义为基本值或值集合,例如,学生的姓名和ID,成绩等就是学生的数据。
组项:具有从属数据项的数据项称为组项,例如,学生的姓名由名字和姓氏组成。
记录:记录可以定义为各种数据项的集合,例如,如果以学生实体为例,那么学生的名称,地址,课程和标记可以组合在一起形成学生的记录。
文件:文件是一种类型实体的各种记录的集合,例如,如果类中有60名员工,则相关文件中将有20条记录,其中每条记录包含有关每个员工的数据。
属性和实体:实体表示某些对象的类。它包含各种属性。每个属性表示该实体的特定属性。
字段:字段是表示实体属性的单个基本信息单元。
2、为什么需要数据结构
处理器速度:要处理非常大的数据,需要高速处理,但随着数据逐日增长到每个实体数十亿个文件,处理器可能无法处理大量数据。
数据搜索:假设商店的库存大小是100860个商品,如果应用程序需要搜索某一特定商品,则每次需要遍历100860个商品,这会导致搜索过程变慢。
大量请求:如果成千上万的用户在Web服务器上同时搜索数据,在此过程中可能在短时会有一个非常大请求而导致服务器处理不了。
3、数据结构的优点
效率:程序的效率取决于数据结构的选择。 例如:假设有一些数据,需要执行搜索特定记录。 在这种情况下,如果在数组中组织数据,则需要逐个元素地搜索。 因此,在这里使用数组可能效率不高。 有更好的数据结构可以使搜索过程像有序数组,二进制搜索树或哈希表一样高效。
可重用性:数据结构是可重用的,即当实现了特定的数据结构,就可以在其他地方使用它。也将数据结构的实现编译到不同客户端使用的程序库中。
抽象:数据结构由ADT指定,它提供抽象级别。 客户端程序仅通过接口使用数据结构,而不涉及实现细节。
4、数据结构分类
4.1 线性结构
如果数据结构的所有元素按线性顺序排列,则称为线性数据结构。 在线性数据结构中,元素以非分层方式存储,除了第一个和最后一个元素,它的每个元素具有后继元素和前导元素。
1)数组
2)链表
3)堆栈
4)队列
4.2 非线性数据结构
非线性数据结构不形成序列,即每个项目或元素以非线性排列与两个或更多个其他项目连接。 数据元素不按顺序结构排列。
1)树
2)图
5、数据结构的操作
1)遍历
2)插入
3)删除
4)搜索
5)排序
6)合并