数据结构基本概念

几个基本概念和术语

1.数据

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

2.数据元素

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

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

3.数据对象

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

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

4.数据类型

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

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

分为三种:

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

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

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

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

5.数据结构

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

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

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

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

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

相关推荐
张张努力变强2 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
wWYy.2 小时前
数组快排 链表归并
数据结构·链表
李斯啦果2 小时前
【PTA】L1-019 谁先倒
数据结构·算法
Mr Xu_18 小时前
告别硬编码:前端项目中配置驱动的实战优化指南
前端·javascript·数据结构
czxyvX18 小时前
017-AVL树(C++实现)
开发语言·数据结构·c++
数智工坊18 小时前
【数据结构-队列】3.2 队列的顺序-链式实现-双端队列
数据结构
elseif12318 小时前
【C++】并查集&家谱树
开发语言·数据结构·c++·算法·图论
徐小夕@趣谈前端19 小时前
Web文档的“Office时刻“:jitword共建版2.0发布!让浏览器变成本地生产力
前端·数据结构·vue.js·算法·开源·编辑器·es6
Nebula_g19 小时前
线程进阶: 无人机自动防空平台开发教程(更新)
java·开发语言·数据结构·学习·算法·无人机
xuxie9920 小时前
day 23 树
数据结构