抽象数据类型和子程序
我们不知道如何实现符合结构,这种抽象的容器被称为抽象数据类型。
抽象数据类型
抽象数据类型 设计目标是通过抽象减少复杂度。
抽象数据类型:属性明确的与特定实现分离的容器。
我们可以在应用层、逻辑层、实现层三个方面观察数据。
应用层是特定问题中的数据的视图。逻辑层是数据值和处理它们操作的抽象视图。实现层明确表示处理存放数据想的结构,并用程序设计语言对数据的操作进行编码。这一层设计了数据结构。
数据结构:一种抽象数据类型中的复合数据域的实现。
容器:存放和操作其他对象的对象。
栈
栈是一种抽象符合结构,只能从一段访问栈中的元素。可以在第一个位置插入元素,也可以删除第一个元素。
另一种描述栈的访问行为的说法是删除的项总是在栈中时间最短的项目。
队列
队列也是中抽象结构。插入操作在队列的尾部进行,删除操作在队列的头部进行。
列表
列表有三个属性特征:项目是同构的,项目是线性的,列表是变长的。
//数组是内嵌结构,列表是抽象结构//
列表也可以被形象化为链式结构。
如果是无序列表,项目将按他们插入的顺序打印。如果是有序列表,项目将被有序的打印出来。
树
二叉树
二叉树是一种抽象结构,后继节点:子女。原始节点:根。没有子女的节点:叶节点
二叉检索树
任何节点的值都要大于他的左子树中的所有节点的值,并且要小于他的右子树中发所有节点的值。
图
图:有一组节点和一组把节点连接起来的便构成的数据结构。
顶点:图中的节点。
边:表示图中的两个节点的链接的顶点对。
无向图:其中的便没有方向的图
有向图:其中的边是从一个顶点指向另一个顶点
临顶点:通过边链接起来的两个顶点
构建图:
创建一个表格
在表格中添加一个顶点
在表格中添加一条边
在表格中添加一个权值
图算法
深度优先搜索
广度优先搜索
子程序
参数传递
参数列表 程序中两部分在之间的通讯机制
形参 列在子程序名后的括号中的识别符
实参 子程序调用中列在括号中的识别符
值参与与引用参数
值参:由调用单元传入实参的副本的形参
引用参数:由调用单元传入实参的地址的形参
面向对象设计与高级程序设计语言
面向对象方法
面向对象
对象:在问题背景中相关的事物或实体。
类:一组具有相似属性和行为的对象的描述。
域:类中的特定项,可以是数据或子程序。
方法:定义了类的一种行为的特定算法。
设计方法
集体讨论(第一阶段),过滤,场景(确定每个类的行为),责任算法(为列出的类的责任编写算法)
一个计算机示例
翻译过程
汇编语言输入汇编器
编译器
编译器:把高级语言编写的程序翻译成机器码的程序。
解释器
解释器:输入用高级语言编写的程序,指导计算机执行每个语句指定的动作的程序。
编译/解释
字节码:编译Java源代码使用的标准机器语言。
Java具有可移植Java编译器输出的程序将被解释而不是被执行Java程序总是被翻译成字节码而不是机器码。