1.数据
数据:数据是信息的载体,是对客观事物的符号表示。也可以说是能够有效的输入到计算机中并且能够被计算处理的符号总称,也是计算机程序处理对象的集合。
数据元素:数据元素是数据中的一个“个体”,是数据的基本组成单位。在不同条件下又可以称为结点、顶点和记录。
数据项:数据项是数据元素的组成部分,是具有独立含义的标识单位。 一个数据元素可以由多个数据项组成。
数据对象:数据对象是性质相同的数据元素的集合。
==数据结构==:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构=逻辑结构+存储结构+运算
2.逻辑结构
==逻辑结构==:数据的逻辑结构是指各个数据元素之间的逻辑关系,是呈现在用户面前的,能够感知到数据元素的组织形式(独立于计算机之外)
分类:线性结构和非线性结构(集合、树形结构、图形结构)
常用的==线性结构==有:线性表,栈,队列,双队列,数组,串。
常见的==非线性结构==有:二维数组,多维数组,广义表,树(二叉树等),图。
特点:
集合:集合中数据之间除了“同属于一个集合”的特性外,数据元素之间无其他关系。它们之间的关系是松散的;
线性结构:线性结构之间数据元素之间存在“一对一”的关系;
树形结构:树形结构之间数据元素之间存在“一对多”的关系;
图形结构:图形结构之间数据元素之间存在“多对多”的关系。
数据的逻辑结构表述涉及两个方面的内容,一方面是数据元素,另一方面是数据元素之间的关系。所以从形式上可采用一个二元数组来定义,形式为如下
Data_Structures=(D,R)
其中D是数据元素的有限集,R是D上关系的有限集,R中的关系描述了D中数据元素之间的逻辑关系,即数据之间的关联方式。
3.存储结构(物理结构)
==存储结构==:数据的存储结构是数据的逻辑结构在计算机中的实现。它包括数据元素(以二进制的存储形式表示)值在计算机中的存储表示和逻辑关系在计算机的存储表示这两部分,是依赖计算机的。
分类:顺序存储、链式存储、索引存储、哈希存储(散列存储)
顺序存储结构:顺序存储是指将所有的数据元素存放在一片连续的存储空间中,并使逻辑上相邻的数据元素其对应的物理位置也相邻。即数据元素的逻辑位置关系和物理位置关系保持一致。
链式存储结构:链式存储不要求将逻辑上相邻的数据元素存储在物理上相邻的位置,即数据元素可以存放在任意的物理位置上。
每一个数据元素对应的存储表示由两部分组成,一部分存放数据元素值本身,另一部分用于存放表示逻辑关系的指针,即数据元素之间的逻辑关系是由附加的指针来表示的。
索引存储结构:索引存储在存储数据元素的同时,还增设了一个索引表。索引表中的每一项包括关键字和地址,其中关键字是能够唯一标识一个数据元素的数据项,地址是指数据元素的存储地址或存储区域的首地址。
哈希存储结构(散列存储结构):哈希存储是将数据元素存储在一片连续的区域内,每一个数据元素的具体存储地址是根据该数据元素的关键字值,通过哈希函数直接计算出来的。
前两个比较常用,后两个查找效率更高
4.数据的操作
数据的操作:是对数据进行某种方法的处理,也称数据的运算。
只有当数据对象按一定的逻辑结构组织起来,并选择了适当的存储方式存储到计算机中时,与其相关的运算才有了实现的基础。
对于不同的数据逻辑结构其对应的运算集也可能不同,常用的操作可归纳为以下几种:
创建操作:建立数据的存储结构。
销毁结构:对已经存在的存储结构将其所有空间释放。
插入操作:对数据存储结构的适当位置上加入一个指定的新的数据元素。
删除操作:将数据存储结构中某个满足指定条件的数据元素进行删除。
查找操作:在数据存储结构中查找某个满足指定条件的数据元素。
修改操作:修改数据结构中某个数据元素的值。
遍历操作:对数据存储结构中每个数据元素按某种路劲访问一次且仅访问一次。
数据的逻辑结构、存储结构和运算是数据结构讨论中不可分割的3个方面,它们中任何一个不同都将导致不同的数据结构。
5.数据类型
8种基本数据类型,分别是整型(4),浮点型(2),字符型和布尔型。
3种引用数据类型,分别是类,接口和数组。
整型:
| 数据类型 | 内存空间 | 取值范围 |
|---|---|---|
| byte | 8位 | -2^7~ 2^7-1 |
| short | 16位 | -2^15~ 2^15-1 |
| int | 32位 | -2^31~ 2^31-1 |
| long | 64位 | -2^63~ 2^63-1 |
浮点型:
| 数据类型 | 内存空间 | 取值范围 |
|---|---|---|
| float | 32位 | -2^31~ 2^31-1 |
| double | 64位 | -2^63~ 2^63-1 |
字符型:
| 数据类型 | 内存空间 | 取值范围 |
|---|---|---|
| char | 8位 | -2^7~ 2^7-1 |
布尔型:boolean
6.抽象数据类型(引用类型中的一种特殊存在)
把数据的使用与实现分离开来的做法称为数据抽象。
数据的抽象是通过抽象数据类型来实现的。抽象数据类型是指一数据值的集合和定义在这个集合上的一组操作。它不包括数据的计算机存储表示,而且这里的操作是脱离了具体实现的抽象操作,即不涉及它的实现细节。
在Java语言中,抽象数据类型的描述可采用两种方法:第一种是用抽象类表示,抽象类型的实现用继承该抽象类的子类表示;第二张是用接口表示,抽象类型的实现用实现该接口的类表示。
作者学习的是Java语言,所以相关实现和描述以Java为主
根据相关书籍整理出来的文章
2331

被折叠的 条评论
为什么被折叠?



