计算机二级
公共基础教程
第一章 算法与数据结构
1.1 算法
l 定义 :指解题方案的准确而完整的描述。 (不等于程序 ,也不等于计算方法)
l 基本特征 可行性
确定性
有穷性——有限个步骤后终止(有限时间内终止)
拥有足够的情报
l 四种基本运算与操作 :算术运算 逻辑运算 关系运算 数据传输
l 三种基本控制结构 :顺序结构 选择结构 循环结构
l 基本设计方法 列举法
归纳法
逆推
逆归
减半递推技术
回溯法
l 指令系统 :一个计算机系统能执行所有指令的集合。
l 复杂度 时间复杂度——执行算法所需的计算工作量
空间复杂度——执行算法所需的内存空间
1.2.1 数据结构 l 一种逻辑结构可以有多种存储结构
l 定义 :相互关联的数据元素的集合
l 不同存储结构影响效率
l 研究的三个方面 逻辑结构
l 逻辑结构 :对数据元素之间的逻辑关系
的描述
一对多
l 存储结构 (物理结构):数据的逻辑结
顺序
构在计算机存储空间中的存放形式
存储结构 链接
索引等
l 顺序存储方式——主要用于线性的数据结构
——它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里 ,
结点之间的关系由存储单元的相邻衔接关系来体现
l 链式存储结构——在每个节点中至少包含一个指针域 ,用指针来体现数据元素之间逻辑
上的联系
1.2.2 线性结构和非线性结构
l 根据数据元素结构中的各数据元素之间前后件关系的复杂程度
l 对于一个非空的数据结构 线性结构 有且只有一个根结点
(线性表)每个结点最多有一个前件 ,也最多有一个后件
非线性结构 :不是线性结构
l 在一个线性结构中插入或删除任何一个结点后还是线性结构
l 线性结构 :栈、队列、串;循环队列、带链队列、带链栈
l 非线性结构 :数组、广义表、树 (例二叉树)和图
l 线性表是最简单的最常用的一种线性结构 ,线性链表指的是采用链式存储结构的线性
表 ,栈和列是一种特殊的线性表 ,树是一种简单的非线性结构 ,二叉树是树的一种。
l 线性与非线性是从数据的逻辑结构角度来讲 ,与该数据结构中含有多少个元素无关 ,
即使是空的二叉树也是非线性结构
1 / 2
l 有序线性表既可以采用顺序存储结构 ,又可以采用链式存储结构
l 线性表的顺序存储结构具有以下两个基本特点 :
1) 线性表中所有元素所占的存储空间是连续的
2) 线性表中各元素所占的存储空间中是按逻辑顺序依次存放的
3) 元 素 ai 的 存 储 地 址 为 :ADR(ai)=ADR(a1)+(i- 1)k,
ADR(a1)为第一个元素地址 ,k 代表每个元素占的字节数
l 顺序表的运算 :查找、插入、删除3 种
1.3 栈 (先进后出)(后进先出)(子弹匣)
l 限定在一端进行插入与删除的线性表 (既可以顺序存储 ,又可以链式存储)
l 栈顶——允许插入与删除元素的一端
l 栈底——封闭的一端 ,栈底指针不变
l