数据结构基本概念

几个基本概念和术语

1.数据

数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合

2.数据元素

数据元素是数据的基本单位 ,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项 组成,数据项是构成数据元素的不可分割的最小单位

举例:一条学生记录是一个数据元素,由学号、姓名、性别等数据项组成。

3.数据对象

数据对象是具有相同性质的数据元素的集合,是数据的一个子集。

举例:考虑上个例子的学生记录,一条学生记录是一个数据元素,而多条这样的学生记录就是一个数据对象。相当于一张表是数据对象,而其中的每一行是数据元素,每一行是由若干个数据项组成的。

4.数据类型

数据类型是一个值的集合和定义在此集合上的一组操作的总称。

这句话有点绕,但实际上意思就是值的集合和操作的集合。值,就是取值范围,能取什么样的值,比如布尔类型的能取的值就只有true和false这两种;操作就是加减乘除与或非这些操作里面,这个数据类型能进行哪些操作。

分为三种:

(1)原子类型。其值不可再分的数据类型。

(2)结构类型。其值可以分解为若干成分(分量)的数据类型。

(3)抽象数据类型。抽象数据组织及与之相关的操作。

其中原子类型就是值不可以再分的,比如int、bool这种基本数据类型;结构类型就是值可以进一步分解的;抽象数据类型就是把实现的细节隐藏,对外只暴露接口的,就像吩咐一个人完成任务,你并不知道也不关心他具体怎么完成,只知道他能完成这项任务。

5.数据结构

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。还是考虑上面学生记录的例子,一条学生记录是一个数据元素,现在是多个这样的数据元素之间存在某种关系,比如下一个数据元素在存储的时候位置必须挨着上一个,又或者这些学生记录是按照学校、年级、班级这种有层次的方式描述的......这种"关系"可以在后续的学习中慢慢加深体会。这种数据元素相互之间的关系成为结构(Structure) 。数据结构包括三方面的内容:逻辑结构存储结构数据的运算。这三个方面缺一不可。

一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。

对于这句话我的理解是算法是解决问题的步骤,问题是什么样的、元素之间的关系,也就是逻辑结构,决定了算法的设计;而算法的实现也就是真正的代码,需要考虑到怎么访问数据怎么删除数据这些细节,而不同的存储结构在这方面不同。

本文参考内容来自王道数据结构考研复习指导,部分内容可能来自网络、其他书籍或自己的见解,会尽量标注出处。如有错误欢迎批评指正。

写在最后的话:希望自己这次能够坚持下来慢慢积累,就先从考研时用的数据结构这本书开始吧,把自己学到的东西记录下来,以后做一个脚踏实地的人。

相关推荐
驭渊的小故事4 小时前
简单模板笔记
数据结构·笔记·算法
VT.馒头5 小时前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
历程里程碑6 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun6 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
Pluchon6 小时前
硅基计划4.0 简单模拟实现AVL树&红黑树
java·数据结构·算法
小龙报7 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
dllxhcjla7 小时前
数据结构和算法
数据结构
历程里程碑8 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
sin_hielo8 小时前
leetcode 1653
数据结构·算法·leetcode
李日灐8 小时前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树