Java数据结构和算法
基本概念
数据:数据是描述客观事物的数值、字符以及能输入给计算机且能被计算机处理的各种符号集合。
数据元素:是组成数据的基本单位,在计算机中通常被作为一个整体进行考虑和处理。也被称为记录。
数据项:数据项是数据不可分割的最小单位。一个数据元素可由多个数据项组成。
数据对象:数据对象是性质相同的数据元素的集合,是数据的子集。
数据结构:我们现实世界中,不同的数据元素之间不是独立的,而是存在某些关系,这些关系就是结构。数据结构是指相互之间存在一种或多种特定关系的数据元素集合。
数据之间的结构
按照观察角度的不同,分为逻辑结构和物理结构。
逻辑结构
逻辑结构是指元素之间的逻辑关系描述。逻辑结构分为四种。
集合结构:结构中的数据除了同属于一个集合的关系外,无任何其他关系。
- 线性结构:结构中的数据元素之间存在着一对一的线性关系。
- 树状结构:结构中的数据元素之间存在着一对多的关系。
- 图状结构(网状结构):结构中的数据元素之间存在着多对多的任意关系。
物理结构
物理结构:是指逻辑结构在计算机中真正的存储结构。
顺序存储结构:把数据元素存放在地址连续的存储单元里。类似于排队,每个人都按顺序站好。我们学习的高级程序语言中的数组就是顺序存储结构,计算机会帮你的数组在内存中找片连续的空间。
链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以不连续。只需要前一个元素记住下一个元素的内存地址,这样就像链条链在一起,如下图: