数据结构第一章疑问处:基本概念解析
数据 – 程序的操作对象,用于描述客观事物
数据的特点:
可以输入到计算机
可以被计算机程序处理
数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型。如:int,float,char等等,以Java为例,还提供了String、List等引用数据类型,而当程序语言提供的这些类型满足不了我们的工作、业务等描述客观事物的需求,我们也可以自定义Class,而自定义Class其实就是在创建一种数据类型。
数据对象:性质相同的数据元素的集合(类似于数组一般)
数据元素:组成数据对象的基本单位,每个数据元素是数据类型的一个实例,如int a = 1; String str = "wcc";当然也可以假如有个自定义的Student类,Student stu = new Student();这里a,str,stu均是一个元素,是int、String、Student的一个实例。当我们用数组或者用集合将这些实例装在一起,例如ArrayList
数据项:一个数据元素可以由若干数据项组成
数据结构之抽象数据类型(Abstract Data Type 简称ADT),这个又是什么呐?
所谓抽象数据类型(Abstract Data Type,ADT)是指这样一种数据类型,它不再单纯是一组值的集合,还包括作用在值集上的操作的集合,即在构造数据类型的基础上增加了对数据的操作,且类型的表示细节及操作的实现细节对外是不可见得。之所以说它是抽象的,是因为外部只知道它做什么,而不知道它如何做,更不知道数据的内部表示细节。这样,即使改变数据的表示和操作的实现,也不会影响程序的其他部分。抽象数据类型可达到更好的信息隐藏效果,因为它使程序不依赖于数据结构的具体实现方法,只要提供相同的操作,换用其他方法实现时,程序无需修改,这个特征对于系统的维护很有利。
可能看了上面还是有些疑惑,我的理解是,抽象数据类型是对数据对象、数据元素、数据项以及对它们的各种操作的一个统一整合,而这个抽象数据类型本身也是Java中的一个Class类型,也就是它也是一种数据类型,只是更复杂,相当于统领的小兵更多了。
我这里拿个代码举例,帮助理解:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构