修改过的第6章软件技术基础.ppt

修改过的第6章软件技术基础

第6章 计算机软件技术基础 6.1 算法与基本数据结构 6.1.1 算法的基本概念 算法的定义与基本特征 算法是一组有穷指令集,是解题方案的准确 而完整的描述。 基本特征: 可行性:算法中的每一步操作都能够通过执行 有限次的基本运算在有限时间内实现。 确定性:算法的每一步操作都必须有确切定义, 不得有任何歧义性。 有穷性:算法必须能在有限的时间内做完,即 能在执行有限个步骤后终止。 输入: 一个算法有n(n≥0)个初始数据的输入。 输出: 一个算法有一个或多个与有效信息的 输出。 算法的基本要素 数据对象的运算和操作 通常,一个计算机系统包含的基本的运算和 操作有如下四类: 算术运算:主要包括加、减、乘、除等运算。 逻辑运算:主要包括与、或、非等运算。 关系运算:主要包括大于、小于、等于、不 等于等运算。 数据传输:主要包括输入、输出、赋值等运算。 算法的控制结构 一个算法通常都可以由顺序、选择、循环三 种基本控制结构组合而成。 6.1.2 算法评价的准则 正确性 可读性 健壮性 算法复杂度 算法复杂度 算法的时间复杂度 算法的空间复杂度 6.1.3 数据结构的概念 数据结构的定义 数据的逻辑结构 数据的存储结构 线性结构与非线性结构 数据结构的定义 数据结构是指相互之间存在着一种或多种关系(即联系)的数据元素的集合和该集合中数据元素之间的关系组成。记为: Data_Structure={D ,R} 其中,D是数据元素的集合,R是该集合中所有数据元素之间的关系的有限集合。 数据结构包括数据的逻辑结构和数据的存储结构(或称物理结构)。 数据的逻辑结构 反映数据元素之间逻辑关系的数据结构,而与它们在计算机中的存储位置无关。 数据的存储结构 数据的存储结构(又称为物理结构)是指数据的逻辑结构在计算机存储空间中的存放形式。 顺序存储结构 链式存储结构 链式存储结构中结点由两部分组成:一部分存储结点本身的值,称为数据域;另一部分存储该结点的后继结点的存储单元地址,称为指针域。 线性结构与非线性结构 线性结构 非线性结构 6.1.4 线性表的顺序存储结构 线性表是具有相同数据类型的n(n≥0)个数据元素的有限集(a1,a2,…,an),每个元素的位置是线性(一维)的。 线性表(a1,a2,…,an)的逻辑特征: 有且仅有一个开始结点a1 (无直接前趋);有且仅有一个终端结点an (无直接后继);其余的结点ai(1in)都有且仅有一个直接前趋ai-1和一个直接后继ai+1。 线性表的两种结构: 顺序存储结构(顺序表) 链式存储结构(链表) 线性表的顺序存储结构 线性表的顺序存储结构是指用一组地址连续的存储单元依次存储线性表中的各个数据元素,使得线性表中在逻辑结构上相邻的元素存储在相邻的物理存储单元中。可见,线性表的顺序存储结构具有以下两个基本特点: (1)线性表中的所有数据元素所占的存储 空间是连续的; (2)线性表中各数据元素在存储空间中是 按逻辑顺序依次存放的。 顺序存储结构下的线性表操作 线性表的插入 线性表的删除 线性表的查找 线性表的复制 线性表的排序 线性表的分解与合并 6.1.5 线性表的链式存储结构 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,对逻辑上相邻的数据元素不要求其物理位置相邻。因此,为了表示每个数据元素ai与其直接后继ai+1之间的逻辑关系,对各个数据元素来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。这两部分信息组成数据元素ai的存储映象,称为存储结点。它包括两个域:其中存储数据元素本身信息的域称为数据域;存储其直接后继存储位置的域称为指针域。 6.1.6 栈和队列 栈和队列是软件设计中常用的两种数据结构,它们的逻辑结构和线性表相同,但栈必须按照“先进后出”的规则进行操作,队列必须按照“先进先出”的规则进行操作。 因此,栈和队列实际上是运算受限制的特殊线性表。 栈 栈是限制在表的一

文档评论(0)

1亿VIP精品文档

相关文档