- 4
- 0
- 约4.44千字
- 约 8页
- 2017-08-25 发布于河南
- 举报
第一章:数据结构与算法
1.算法的基本特征
(1)可行性
(2)确定性:算法的每个步骤必须有明确定义,不能模棱两可。
(3)又穷性:算法必须在有限的时间内做完。
(4)拥有足够情报:当输入的初始值不够用时,算法本身无法执行或执行有错,一般来说,算法有足够的情报,执行才能有效。
2.算法的复杂度
(1)时间复杂度:执行算法所需要的计算工作量(即:基本运算的执行次数)
(2)空间复杂度:执行算法所需要的内存空间
3.数据结构分类
(1)逻辑结构:反映数据各元素之间固有的逻辑关系 顺序存储结构
(2)存储结构(物理结构):数据在计算机中的存放位置 链式存储结构
4.线性结构(线性表)的顺序存储
如:
姓名 学号 性别 年龄 健康状况 王强 80035 男 18 好 刘建平 80036 男 19 中 赵军 80037 女 20 差 每一列为一个数据项
由若干数据项组成的数据元素为数据元素为记录
由多个记录构成的线性表为文件
5.特殊的线性表——栈
6.特殊的线性表——队列
7.线性表的链式存储结构——线性链表:各数据点的存储序号不连续,靠指针找到想要的数据。
8.特殊的线性链表——循环链表:弥补了普通线性链表对于第一个结点单独考虑的弊端。
循环链表的头指针和尾指针都指向表头结点。
9.树的性质:非线性结构
10.特殊的树——二叉树
一些表明二叉树性质的运算:
第K层上最多有2^(k-1)个
深度为m的二叉树最多有(2^m)-1
深度为0的结点总比深度为2的结点多一个
11.满二叉树
12.完全二叉树:除最后一层,每层都是满的。
13.二叉树的遍历:
(1)前序遍历:根左右
(2)中序遍历:左根右
(3)后序遍历:左右根
14.查找技术:
(1)顺序查找:(最坏情况下比较n次)
无序线性表:无论是顺序存储还是链式存储,都只能顺序查找
有序线性表:如果为链式存储结构,只能用顺序查找
(2)二分法查找:(最坏情况下比较log 2 n次)
只适用于有序表的顺序存储
第二章:程序设计基础
1.程序设计风格:清晰第一,效率第二 源程序文档化
2.程序化设计原则: 数据说明次序规范化
(1)自顶向下 语句结构清晰
(2)逐步求精
(3)模块化
(4)限制使用goto语句
3.三种基本控制结构:
(1)顺序结构
(2)选择结构
(3)循环结构
【面向对象方法】
4.对象的概念:是客观世界实体的抽象
5.对象的特点:
(1)标识唯一性:对象是可区分的,是根据其内在本质来区分的
(2)分类型:具有相同属性和操作的对象,可以抽象成类
(3)多态性:一个操作可以是不同对象的行为
(4)封装性:操作过程是对外封闭的,用户只能看到其操作后的结果
(5)模块独立性好:内聚性强
6.对象的操作:称为方法或服务。如:汽车的操作是启动,刹车等。
7.属性的概念:对象所包含的信息。如:汽车的属性可以是 颜色,型号等
8.类:共同属性,共同方法对象的集合
9.实例:一个对象是其对应类的实例
10.消息的概念:消息是对象间联系合作的桥梁,它告诉接受者执行某些要求。
11.对象的性质-----继承:直接获得已有的性质和特征,不必重复定义它们。并不是每个对象都要有继承性的。
12.继承的特性:传递性。如:如果类C继承类B,而类B又继承类A,则类C也继承类A
13.继承的分类:单继承和多继承,单继承指一个类只允许有一个父类,多继承指一个类允许有多个父类
14. 结构化程序设计主要强调---程序的易读性
1.软件危机的6点表现(可归结为成本,质量,生产率的问题)
1.软件的概念:程序,数据及相关文档的完整结合
2.软件工程包括3个要素:
(1)方法
(2)工具
(3)过程
3.软件生命周期的概念:
将软件从提出,实现,使用维护到停止使用退役的过程称为软件的生命周期。
4.软件生命周期的主要活动阶段:
(1)可行性研究与计划设定:计划好想要有什么功能
(2)需求分析:
a.概念:对想要的需求进行分析。
b.编写软件规格说明书及初步用户手册
c.软件需求规格说明书,是需求分析阶段的最后成果
d.结构化分析方法:是结构化设计在需求分析阶段的应用
e.结构化分析的工具:
数据流图 DFD (加工: 数据流:
存储文件 : 源(OR潭):
原则:自外向内,自顶向下,逐层细化,完善求精)
数据字典 DD
判定树
判定表
(3)软件设计(分为概要设计和详细设计)
㈠ 常见的详细设计设计工具:
a.图形工具:程序流程图;N-S图,PAD图(问题分析图);HIPO
b.表格工具:判定表
c.语言工具:PDL(伪代码)
㈡
原创力文档

文档评论(0)