数据结构基本概念

几个基本概念和术语

1.数据

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

2.数据元素

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

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

3.数据对象

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

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

4.数据类型

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

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

分为三种:

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

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

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

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

5.数据结构

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

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

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

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

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

相关推荐
多米Domi0119 分钟前
0x3f 第48天 面向实习的八股背诵第五天 + 堆一题 背了JUC的题,java.util.Concurrency
开发语言·数据结构·python·算法·leetcode·面试
故以往之不谏26 分钟前
函数--值传递
开发语言·数据结构·c++·算法·学习方法
向哆哆1 小时前
构建跨端健身俱乐部管理系统:Flutter × OpenHarmony 的数据结构与设计解析
数据结构·flutter·鸿蒙·openharmony·开源鸿蒙
独自破碎E2 小时前
【总和拆分 + 双变量遍历】LCR_012_寻找数组的中心下标
数据结构·算法
txzrxz3 小时前
结构体排序,双指针,单调栈
数据结构·算法·双指针算法·单调栈·结构体排序
wWYy.3 小时前
算法:二叉树最大路径和
数据结构·算法
一条大祥脚3 小时前
ABC357 基环树dp|懒标记线段树
数据结构·算法·图论
苦藤新鸡4 小时前
50.腐烂的橘子
数据结构·算法
无限进步_4 小时前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
Hello World . .4 小时前
数据结构:栈和队列
c语言·开发语言·数据结构·vim