数据基本类型,符合数据类型,数据结构的理解,抽象数据结构
2013-05-09 21:35
375 查看
基本数据类型是对于指令操作的数据单元来说的。其决定了操作,字节数。这个概念很对编译有用。比如short int x = 2; 则是把数“2”指令中使用2个字节,X也用2个字节的存储。然后 int y = x;汇编代码为:
Movl $2,%ax # %ax=x.
Movswl %ax,%ecx #%ecx=y.
y使用4个字节的存储,而且因为x的int关系,决定了操作movswl。
结构体等复合数据类型:方便用户设计程序中对数据的处理,对现实世界数据语义的映射。(部分映射,只反映一个实体,对象,对象间关系没有,对于编程来说不重要,反映在程序设计过程中了。面向对象思想)如
struct student {
int age;
int scroe;
String name;
}
表征数据怎么组织,已经是数据结构(格式:信息的组织)了。(当然也和数据类型交叉)
数据结构:针对大量数据单元,包含逻辑结构,存储结构,操作(如栈,队列,图)。这个概念针对程序设计思想提出的。现实世界一些问题的基本模型(区别于复合数据类型,属于结构包含了操作,即问题对象的为行为模式,过程,比如用户的配对队列,用队列数据结构)。
是现实世界,语义关系的一个反应
所以,数据结构,是程序设计用的,基本数据类型,是编译器用的。
2013.6.1
基于这篇文章(http://blog.csdn.net/Cpp_Java_Man/article/details/722569)给出的解释,
广义的数据结构:包括数据的1.逻辑结构,2.存储结构,3.定义在逻辑结构上的操作。
狭义的数据结构:指的是数据的逻辑结构,是信息的组织方式,根据元素的前后趋情况划分。我们在讨论的时候,常用狭义概念,而研究数据结构这么课程的时候,就使用广义的数据结构。
数据的存储结构:4种,见文章(顺序,链,索引{关键字,地址},散列索引)。
定义在逻辑结构上的操作:增、删、改、查(重点)、排序(属于改,重点)的全部或一部分。
抽象数据结构:是数据的逻辑结构及其在逻辑结构上定义的操作。
数据类型:值和操作的集合。基本数据类型的操作由编译器实现了。自定义的抽象数据类型的实现基于基本刷数据类型。
////////////////////////////////////////////////////////////////////////////////////////////
这些概念如何使用??
数据的逻辑结构和抽象数据类型,都是在 概念(或抽象、逻辑)层次描述问题。 软件的设计,总是由
现实的实现—> 概念(抽象、逻辑)层次描述【考虑数据逻辑结构及定义在数据逻辑结构上的操作,即ADT】—> 程序的实现上【考虑存储结构及在此存储结构上操作的实现】。
由上可知,数据结构和数据抽象类型的关系即:数据结构包含了程序的设计及实现过程。而抽象数据类型是数据结构的一部分,指涉及了程序的设计部分。 数据存储结构,基本数据类型涉及了程序的实现部分。
数据类型,抽象数据类型,基本数据类型:
基本数据类型的概念符合数据类型(值,操作)。抽象数据类型同样符合数据类型概念。但是抽象数据类型额外涉及了数据逻辑结构,因为对于多个单元数据组成的值集合,集合富含了数据之间的关系,值得表示不能脱离关系的约束。
另外,对于操作,数据结构包含了操作的细节(如队列FIFO的插入),而抽象数据结构对操作只要求抽象的,无具体要求(队列即插入)。
过程例如:1.确定问题是什么数据逻辑结构(集合,线性表,树,图)。2.然后确定操作,结合操作特性的一些数据逻辑结构,有了新名字,比如,线性表+先进后出
= 栈。 3.给出ADT描述。 4。结合ADT,基于使用语言的基本数据类型,确定数据的存储结构(考虑各存储结构的优缺点),给出实现。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
抽象数据类型(ADT):
抽象数据类型(ADT)的形式化描述,包含了数据逻辑结构的描述及操作的描述(也是函数的要素:输入输出【此处针对抽象数据类型,所以输入输出的数据基本上就是逻辑结构描述的数据,独立函数的话,则看参数及返回值了】,操作执行条件,【通常是要操作的数据具有约束,需要满足约束】,执行后数据状态。).
形式化描述:即具有严格语义及格式的描述形式,数学符号或图或语言(程序设计语言也是,但是太严格,太细节性)。
ADT ADT-Name{
Data://数据说明
数据元素之间逻辑关系的描述
Operations://操作说明
Operation1://操作1,它通常可用C或C﹢﹢的函数原型来描述
Input:对输入数据的说明
Preconditions:执行本操作前系统应满足的状态//可看作初始条件
Process:对数据执行的操作
Output:对返回数据的说明
Postconditions:执行本操作后系统的状态//"系统"可看作某个数据结构
Operation2://操作2
……
}//ADT
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
函数设计考虑的一些要素:
1.在无类的语言中,函数的设计通常会将要操作的数据对象作为参数,这样可以扩展函数的通用性。
2.如果输出值的范围是其类型的全集,那么不能放在返回值中返回,否则调用者不能判断函数是否执行失败。
参考文献:
【1】http://blog.csdn.net/Cpp_Java_Man/article/details/722569 (重)
【2】/article/11460928.html
Movl $2,%ax # %ax=x.
Movswl %ax,%ecx #%ecx=y.
y使用4个字节的存储,而且因为x的int关系,决定了操作movswl。
结构体等复合数据类型:方便用户设计程序中对数据的处理,对现实世界数据语义的映射。(部分映射,只反映一个实体,对象,对象间关系没有,对于编程来说不重要,反映在程序设计过程中了。面向对象思想)如
struct student {
int age;
int scroe;
String name;
}
表征数据怎么组织,已经是数据结构(格式:信息的组织)了。(当然也和数据类型交叉)
数据结构:针对大量数据单元,包含逻辑结构,存储结构,操作(如栈,队列,图)。这个概念针对程序设计思想提出的。现实世界一些问题的基本模型(区别于复合数据类型,属于结构包含了操作,即问题对象的为行为模式,过程,比如用户的配对队列,用队列数据结构)。
是现实世界,语义关系的一个反应
所以,数据结构,是程序设计用的,基本数据类型,是编译器用的。
2013.6.1
基于这篇文章(http://blog.csdn.net/Cpp_Java_Man/article/details/722569)给出的解释,
广义的数据结构:包括数据的1.逻辑结构,2.存储结构,3.定义在逻辑结构上的操作。
狭义的数据结构:指的是数据的逻辑结构,是信息的组织方式,根据元素的前后趋情况划分。我们在讨论的时候,常用狭义概念,而研究数据结构这么课程的时候,就使用广义的数据结构。
数据的存储结构:4种,见文章(顺序,链,索引{关键字,地址},散列索引)。
定义在逻辑结构上的操作:增、删、改、查(重点)、排序(属于改,重点)的全部或一部分。
抽象数据结构:是数据的逻辑结构及其在逻辑结构上定义的操作。
数据类型:值和操作的集合。基本数据类型的操作由编译器实现了。自定义的抽象数据类型的实现基于基本刷数据类型。
////////////////////////////////////////////////////////////////////////////////////////////
这些概念如何使用??
数据的逻辑结构和抽象数据类型,都是在 概念(或抽象、逻辑)层次描述问题。 软件的设计,总是由
现实的实现—> 概念(抽象、逻辑)层次描述【考虑数据逻辑结构及定义在数据逻辑结构上的操作,即ADT】—> 程序的实现上【考虑存储结构及在此存储结构上操作的实现】。
由上可知,数据结构和数据抽象类型的关系即:数据结构包含了程序的设计及实现过程。而抽象数据类型是数据结构的一部分,指涉及了程序的设计部分。 数据存储结构,基本数据类型涉及了程序的实现部分。
数据类型,抽象数据类型,基本数据类型:
基本数据类型的概念符合数据类型(值,操作)。抽象数据类型同样符合数据类型概念。但是抽象数据类型额外涉及了数据逻辑结构,因为对于多个单元数据组成的值集合,集合富含了数据之间的关系,值得表示不能脱离关系的约束。
另外,对于操作,数据结构包含了操作的细节(如队列FIFO的插入),而抽象数据结构对操作只要求抽象的,无具体要求(队列即插入)。
过程例如:1.确定问题是什么数据逻辑结构(集合,线性表,树,图)。2.然后确定操作,结合操作特性的一些数据逻辑结构,有了新名字,比如,线性表+先进后出
= 栈。 3.给出ADT描述。 4。结合ADT,基于使用语言的基本数据类型,确定数据的存储结构(考虑各存储结构的优缺点),给出实现。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
抽象数据类型(ADT):
抽象数据类型(ADT)的形式化描述,包含了数据逻辑结构的描述及操作的描述(也是函数的要素:输入输出【此处针对抽象数据类型,所以输入输出的数据基本上就是逻辑结构描述的数据,独立函数的话,则看参数及返回值了】,操作执行条件,【通常是要操作的数据具有约束,需要满足约束】,执行后数据状态。).
形式化描述:即具有严格语义及格式的描述形式,数学符号或图或语言(程序设计语言也是,但是太严格,太细节性)。
ADT ADT-Name{
Data://数据说明
数据元素之间逻辑关系的描述
Operations://操作说明
Operation1://操作1,它通常可用C或C﹢﹢的函数原型来描述
Input:对输入数据的说明
Preconditions:执行本操作前系统应满足的状态//可看作初始条件
Process:对数据执行的操作
Output:对返回数据的说明
Postconditions:执行本操作后系统的状态//"系统"可看作某个数据结构
Operation2://操作2
……
}//ADT
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
函数设计考虑的一些要素:
1.在无类的语言中,函数的设计通常会将要操作的数据对象作为参数,这样可以扩展函数的通用性。
2.如果输出值的范围是其类型的全集,那么不能放在返回值中返回,否则调用者不能判断函数是否执行失败。
参考文献:
【1】http://blog.csdn.net/Cpp_Java_Man/article/details/722569 (重)
【2】/article/11460928.html
相关文章推荐
- JAVA 基本数据类型理解
- objective-c(四)-基本数据类型以及循环和选择结构
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--HashTable
- [opencv]图像处理的基本数据类型以及通道和维度理解
- 基本数据类型的默认初始值及this的点滴理解
- java基础复习1--基本数据类型、运算符号、表达式语句与程序结构
- 第二部分 算法的基本控制结构与数据类型
- Core Java (二) Java的基本结构与数据类型
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--预定义变量
- C语言:基本数据类型与程序结构控制
- oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数
- 数据结构的基本类型
- Java主类结构以及基本数据类型
- 你真的理解Java的基本数据类型吗?
- 数据结构(二) --- 基本数据类型
- 运维之mysql篇------1. 数据库服务概述 、 构建MySQL服务器 、 数据库基本管理 、 MySQL数据类型 、 表结构的调整
- Oracle PL/SQL的程序结构以及基本数据变量类型
- 第二章 包结构 基本数据类型
- C语言中数据结构的基本类型(整型、浮点型和字符型)
- JNI 学习笔记(一)-- JNI函数调用流程,JNI理解和基本数据类型