python数据结构学习笔记-2016-10-05-01-抽象数据类型(一)
2016-10-05 00:37
681 查看
python数据结构以Data Structure and Algorithms Using Python为书本。
算法(Algorithm):为在有限时间内解决某个问题的一系列清晰精确的、按顺序执行的指令集。
1.1 简介
数据项(Data items):在计算机中以一系列二进制数字表示。
类型(type):一系列值的集合
数据类型(data type):包含给定的类型和一些能操纵这一类型的值的操作。
基类型(primitives):一般程序语言都会提供的数据类型。包括简单数据类型和复杂数据类型。
简单数据类型(simple date types):其中包含的值以大多数的基本形式表示,并且不能再细分成更小的部分。
复杂数据类型(complex data types):其中包含的组件由简单数据类型或复杂数据类型组成。
用户定义类型(user-defined types):基类型可能无法满足解决一些大型复杂问题,需要允许用户自己定义相应的新类型来满足需求。
1.1.1 抽象
抽象(Abstraction):忽略对象与当前目标不相关性质并着眼于与当前目标相关的属性。
抽象分为过程抽象和数据抽象。
过程抽象(procedural abstraction):在使用函数或方法时,只关注这一函数或方法是干什么的,而忽略它是怎么实现的。
数据抽象(data abstraction):从数据类型的实现中分理出的相应属性(值和操作)。(不理解)
抽象层次
最低层是硬件,这一层基本没有抽象。只包含值的二进制表示和执行运算的逻辑回路。
往上一层是汇编语言,这一层抽象出了整数和运算(加减?)。
再往上一层是高级语言,这一层的抽象是,提供基类型来储存整数和一系列已定义的运算。
但是大多数高级语言提供的整数是有一定限度的,比如说32位计算机体系中,其范围是-2^31至2^31-1。要想实现更大范围的整数表示,就要借助软件层来实现。(大致理解)
1.1.2 抽象数据类型
抽象数据类型(Abstract data type, ADT):它是由程序员定义的一种数据类型,包括一些指定数据值与相关已定义的操作。
我们可以不用特地去关心抽象数据类型的实现,而是着眼于抽象数据类型的使用。
接口(interface)促使了抽象数据类型的使用与实现的分离。这也被称之为信息隐藏(information hiding)。
一般而言,抽象数据类型所包含的操作可以分为四类
构造器:构造和初始化抽象数据类型的实例;
访问器:返回实例中的数据;
修改器:修改实例中的内容;
迭代器:遍历所有数据。
使用抽象数据类型的好处
着眼与解决眼前的问题,以免陷入具体细节实现的困难;
减少逻辑错误的产生?
当使用的ADT改变时,无需更新代码;
利于分解成小模块,便于团队分工合作。
1.1.3 数据结构
抽象数据类型分为简单抽象数据类型和复杂抽象数据类型。
简单抽象数据类型(simple ADT):由一个或几个数据字段组成。比如说日期和随机数。
复杂抽象数据类型(complex ADT):是一个数据值的集合。比如说python的列表和字典。
数据结构(data structure):数据如何组织和操作的物理表示。比如说数组、线性表、堆栈、队列和树等。
1.1.4 一般定义
集合(Collection):一组两两不相关的值。
容器(Container):任何可储存和组织集合的数据结构或ADT。其中包含的每个值可称为元素。没有任何值的容器成为空容器。比如说python提供的字符串、列表、元组、字典和集合都是容器。
序列(Sequence):一个元素按照线形顺序从前往后排列的容器,其中的每一个元素可通过相应的位置来访问。
生成列表(general list)或列表结构(list strcture):含一定顺序的集合。注意序列肯定是生成列表或列表结构,但是生成列表或列表结构不一定是序列。因为在定义中,没有要求可通过位置访问相应元素。此外,还要注意其与python中提供的列表的区别。
算法(Algorithm):为在有限时间内解决某个问题的一系列清晰精确的、按顺序执行的指令集。
1.1 简介
数据项(Data items):在计算机中以一系列二进制数字表示。
类型(type):一系列值的集合
数据类型(data type):包含给定的类型和一些能操纵这一类型的值的操作。
基类型(primitives):一般程序语言都会提供的数据类型。包括简单数据类型和复杂数据类型。
简单数据类型(simple date types):其中包含的值以大多数的基本形式表示,并且不能再细分成更小的部分。
复杂数据类型(complex data types):其中包含的组件由简单数据类型或复杂数据类型组成。
用户定义类型(user-defined types):基类型可能无法满足解决一些大型复杂问题,需要允许用户自己定义相应的新类型来满足需求。
1.1.1 抽象
抽象(Abstraction):忽略对象与当前目标不相关性质并着眼于与当前目标相关的属性。
抽象分为过程抽象和数据抽象。
过程抽象(procedural abstraction):在使用函数或方法时,只关注这一函数或方法是干什么的,而忽略它是怎么实现的。
数据抽象(data abstraction):从数据类型的实现中分理出的相应属性(值和操作)。(不理解)
抽象层次
最低层是硬件,这一层基本没有抽象。只包含值的二进制表示和执行运算的逻辑回路。
往上一层是汇编语言,这一层抽象出了整数和运算(加减?)。
再往上一层是高级语言,这一层的抽象是,提供基类型来储存整数和一系列已定义的运算。
但是大多数高级语言提供的整数是有一定限度的,比如说32位计算机体系中,其范围是-2^31至2^31-1。要想实现更大范围的整数表示,就要借助软件层来实现。(大致理解)
1.1.2 抽象数据类型
抽象数据类型(Abstract data type, ADT):它是由程序员定义的一种数据类型,包括一些指定数据值与相关已定义的操作。
我们可以不用特地去关心抽象数据类型的实现,而是着眼于抽象数据类型的使用。
接口(interface)促使了抽象数据类型的使用与实现的分离。这也被称之为信息隐藏(information hiding)。
一般而言,抽象数据类型所包含的操作可以分为四类
构造器:构造和初始化抽象数据类型的实例;
访问器:返回实例中的数据;
修改器:修改实例中的内容;
迭代器:遍历所有数据。
使用抽象数据类型的好处
着眼与解决眼前的问题,以免陷入具体细节实现的困难;
减少逻辑错误的产生?
当使用的ADT改变时,无需更新代码;
利于分解成小模块,便于团队分工合作。
1.1.3 数据结构
抽象数据类型分为简单抽象数据类型和复杂抽象数据类型。
简单抽象数据类型(simple ADT):由一个或几个数据字段组成。比如说日期和随机数。
复杂抽象数据类型(complex ADT):是一个数据值的集合。比如说python的列表和字典。
数据结构(data structure):数据如何组织和操作的物理表示。比如说数组、线性表、堆栈、队列和树等。
1.1.4 一般定义
集合(Collection):一组两两不相关的值。
容器(Container):任何可储存和组织集合的数据结构或ADT。其中包含的每个值可称为元素。没有任何值的容器成为空容器。比如说python提供的字符串、列表、元组、字典和集合都是容器。
序列(Sequence):一个元素按照线形顺序从前往后排列的容器,其中的每一个元素可通过相应的位置来访问。
生成列表(general list)或列表结构(list strcture):含一定顺序的集合。注意序列肯定是生成列表或列表结构,但是生成列表或列表结构不一定是序列。因为在定义中,没有要求可通过位置访问相应元素。此外,还要注意其与python中提供的列表的区别。
相关文章推荐
- python数据结构学习笔记-2016-10-05-02-抽象数据类型(二)
- python数据结构学习笔记-2016-10-05-04-抽象数据类型(四)
- python数据结构学习笔记-2016-10-05-03-抽象数据类型(三)
- python数据结构学习笔记-2016-11-05-01-队列ADT及其实现
- python数据结构学习笔记-2016-11-07-01-双链表
- python数据结构学习笔记-2017-01-08-01-N皇后问题、迷宫问题和跳马问题的递归解决
- python数据结构学习笔记-2016-11-27-01-二叉树
- python数据结构学习笔记-2016-10-27-01-链表
- python数据结构学习笔记-2016-10-15-01-矩阵ADT
- python数据结构学习笔记-2016-12-04-01-Morse电码
- python数据结构学习笔记-2016-11-11-01-递归
- python数据结构学习笔记-2016-11-23-01-归并排序
- python数据结构学习笔记-2016-11-18-01-散列表ADT
- python数据结构学习笔记-2016-10-17-01-集合
- python数据结构学习笔记-2016-10-07-01-完善后的mydate.py
- python数据结构学习笔记-2016-11-26-01-链表排序
- python数据结构学习笔记-2016-11-24-01-快速排序
- python数据结构学习笔记-2016-12-10-01-AVL树
- python数据结构学习笔记-2016-11-28-01-表达式树
- python数据结构学习笔记-2016-11-09-01-文本编辑器