数据结构基本概念

几个基本概念和术语

1.数据

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

2.数据元素

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

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

3.数据对象

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

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

4.数据类型

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

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

分为三种:

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

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

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

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

5.数据结构

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

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

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

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

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

相关推荐
不知名的老吴1 天前
双栈秒杀表达式的生成方式
数据结构
故事和你911 天前
洛谷-【动态规划1】动态规划的引入2
开发语言·数据结构·c++·算法·动态规划·图论
信奥胡老师1 天前
B3968 [GESP202403 五级] 成绩排序
数据结构·算法
z200509301 天前
今日算法(回溯算法)
数据结构·算法
m0_629494731 天前
LeetCode 热题 100-----28. 两数相加
数据结构·算法·leetcode·链表
一路往蓝-Anbo1 天前
第五章:如何对 HAL 库本身进行单元测试?
网络·数据结构·stm32·单片机·嵌入式硬件·单元测试·tdd
青山师1 天前
B+树与InnoDB索引深度解析:数据库索引的底层原理与工程实践
数据结构·数据库·b树·性能优化·b+树·索引优化·mysql性能
tongluowan0071 天前
数据结构 Bitmap(位图)完整详解
开发语言·数据结构·bitmap
代码中介商1 天前
排序算法完全指南(五):快速排序深度详解
数据结构·算法·排序算法
纽扣6671 天前
【算法进阶之路】链表终极进阶:合并 K 个有序链表 + 复制带随机指针的链表(含双解法)
数据结构·算法·链表