数据结构基本概念

几个基本概念和术语

1.数据

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

2.数据元素

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

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

3.数据对象

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

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

4.数据类型

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

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

分为三种:

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

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

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

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

5.数据结构

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

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

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

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

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

相关推荐
CSharp精选营10 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
刘马想放假4 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠5 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦11 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
小小工匠12 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
玖玥拾12 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
Qres82113 天前
算法复键——树状数组
数据结构·算法
牛油果子哥q13 天前
并查集(DSU)超精讲,路径压缩、按秩合并、万能模板、连通性判定、最小生成树与刷题实战全解
数据结构·c++·最小生成树·并查集
凌波粒13 天前
LeetCode--491.递增子序列(回溯算法)
数据结构·算法·leetcode
WL学习笔记13 天前
单项不带头不循环链表
数据结构·链表