Java数据结构一(基本概念)

1.什么是数据结构

数据(Data):能描述现实事物的数字、字符和能输入到计算机中并且被计算机所接受的各种符号集合的统称。数据是信息的符号表示,是计算机处理的对象。计算机能处理的数据还有字符串等非数值数据,以及图形、图像、视频等多媒体数据。

数据元素(Data Element):表示一个事务的一组数据称为一个数据元素。数据元素是数据的基本单位,数据元素由一个或多个不可分割的**数据项(Data Item)**组成,数据项可以是一个字符还可以是表示一个事物的一个属性,具体分割需要看场景。

数据结构(Data Structure)数据结构为多个元素之间存在的关系,一个数据结构是由n(n>=0)个元素组成的有限集合中的某种特定的关系

2.数据结构

2.1.数据的逻辑结构

表示数据元素之间的逻辑关系,用一个数据元素的集合和定义在这个集合中的若干关系表示,被简称为数据结构。

2.1.1 线性结构

Java数据结构一(基本概念)
线性表(a0,a1, …,an-1)是由n(n>=0)个类型相同的数据组成的有限序列,如果n为0,线性表就为空表;反之ai-1有且仅有一个直接前驱和直接后驱,a0之后后驱,an-1只有前驱,采用序号确定元素在线性结构中的逻辑顺序

Java数据结构一(基本概念)
数据元素也可以是其他复杂形式的数据,上图的member表数据都为线性结构,数据元素之间具有顺序关系

2.1.2 树结构

树结构是数据元素中具有层次关系的一种非线性结构,树中的数据元素通常称为结点。根节点没有前驱结点(父母节点),根结点之外的其他结点有且仅有一个父母结点,所有结点都可以有多个后继结点(孩子节点)
Java数据结构一(基本概念)

2.1.3 图结构

图也是非线性结构,每个元素可以有多个前驱元素和多个后驱元素。例如交通道路、飞机航班图都为图结构。

2.2.数据的存储结构

数据元素及其关系在计算机中的存储表示或者实现被称为数据的存储结构,也称为物理结构。
数据的逻辑结构从逻辑关系角度观察数据,他与数据的存储无关,是独立与计算机的。而数据的存储结构是逻辑结构在计算机内存中的实现,它是依赖于计算机的。

2.2.1 顺序存储结构

顺序存储结构使用一组连续的内存单元依次存放数据元素,数据元素在内存中的物理存储次序和他们的逻辑次序相同。
通常程序设计语言中的数组实现顺序存储结构

2.2.2 链式存储结构

链式存储结构使用若干地址分散的存储单元存储数据,逻辑上相邻的元素在物理位置上不一定相邻,数据元素之间的关系需要附加信息特别指定,通常采用指针变量记载前驱或者后继元素的存储地址,由地址域和数据域组成一个结点表示一个数据元素,通过地址域将相互关联的结点链接起来。

3.总结

  • 数据的逻辑结构简称为数据结构,表示多个数据元素集合之间的关系。分别由三种基本结构 (线性结构、树结构、图结构)组成。
  • 存储结构是逻辑结构在计算机中的实现,基本形式分为两种(顺序结构、链式结构)