数据结构、数据类型和抽象数据类型的区别
Difference between data structure, data type and abstract data type
我了解基本概念和定义,例如:
- 抽象数据类型是定义一组值和
此值的一组操作。
- 数据结构是您存储数据的方式
对其进行操作的有效方法。
- 数据类型是计算机语言的一种指令,告诉
如何操作这种类型的数据。
我不明白的是这些概念的抽象级别以及它们之间的关系。就像,好吧,这就是我对这一切的理解:
- Stack(ATD) 是可以将一些对象放在上面的想法
然后仅拉出最后放置的物体。提供 2 个操作 - void
推(对象),对象拉()。
- Stack(数据结构)有点具体化,所以,假设是可以将一些对象放在上面的想法以及 push() 和 pull() 操作的想法 可以工作,就像在数组的基础上一样。
- -Stack(datatype) 是我可以与我的 *.cpp 一起使用的源代码的具体部分。
我是对的还是漏掉了什么?
p.s。抱歉我的英语不好。
简单的说,Data structure, Abstract data type, Data type的关系就像Algorithm, Pseudo-code和Program的关系一样。第一个是想法,第二个是正式描述(抽象的,不可访问的),第三个是实现(具体的,可访问的)。
ADT 仅以逻辑形式存在。最好用自然语言或伪代码来表达。示例:List、Map、Stack 等
一旦实现了ADT,它就变成了一种数据结构。
示例:链表、哈希图等
类型主要指的是内置原语,例如 Int、Char 或使用其他内置类型(例如 C 结构)的用户定义类型。
不过,我相信这条线并不是严格划定的。例如,如果一种语言提供链表作为内置类型,那么它将是一种类型。
另请查看下面的讨论:
https://softwareengineering.stackexchange.com/questions/148747/abstract-data-type-and-data-structure
我了解基本概念和定义,例如:
- 抽象数据类型是定义一组值和 此值的一组操作。
- 数据结构是您存储数据的方式 对其进行操作的有效方法。
- 数据类型是计算机语言的一种指令,告诉 如何操作这种类型的数据。
我不明白的是这些概念的抽象级别以及它们之间的关系。就像,好吧,这就是我对这一切的理解:
- Stack(ATD) 是可以将一些对象放在上面的想法 然后仅拉出最后放置的物体。提供 2 个操作 - void 推(对象),对象拉()。
- Stack(数据结构)有点具体化,所以,假设是可以将一些对象放在上面的想法以及 push() 和 pull() 操作的想法 可以工作,就像在数组的基础上一样。
- -Stack(datatype) 是我可以与我的 *.cpp 一起使用的源代码的具体部分。
我是对的还是漏掉了什么?
p.s。抱歉我的英语不好。
简单的说,Data structure, Abstract data type, Data type的关系就像Algorithm, Pseudo-code和Program的关系一样。第一个是想法,第二个是正式描述(抽象的,不可访问的),第三个是实现(具体的,可访问的)。
ADT 仅以逻辑形式存在。最好用自然语言或伪代码来表达。示例:List、Map、Stack 等
一旦实现了ADT,它就变成了一种数据结构。 示例:链表、哈希图等
类型主要指的是内置原语,例如 Int、Char 或使用其他内置类型(例如 C 结构)的用户定义类型。
不过,我相信这条线并不是严格划定的。例如,如果一种语言提供链表作为内置类型,那么它将是一种类型。
另请查看下面的讨论: https://softwareengineering.stackexchange.com/questions/148747/abstract-data-type-and-data-structure