线性结构与非线性结构线性结构的特点:数据元素{…,a,b,c,…}之间存在前后次序,排在某个数据元素b前面的数据元素a称为b的直接前驱元素,而数据元素b则称为数据元素a的直接后继元素,对于某个数据元素,如果存在直接前驱元素或直接后继元素,则都是唯一的
线性结构中数据元素之间的正逆关系都是“一对一”的
非线性结构的特点:数据元素不一定存在确定的前后次序,甚至是无序的,数据元素之间存在从属、或互为从属、或离散关系
树型结构中,数据元素之间存在着“一对多”的从属关系
图或网状结构中,数据元素之间存在着“多对多”的互为从属关系
在纯集合结构中,数据元素具有“同属于一个集合”的关系
算法和程序1
算法算法:是指解决问题的一种方法或一个过程
算法可以理解为函数的另一种表述,所以,一个给定的算法解决一个特定的问题
算法也可以描述为:算法是非空的、有限的指令序列,遵循它就可以完成某一确定的任务
它有五大特征:有穷性:一个算法在执行有限步骤之后必须终止
如果步骤是无限地,并无法全部写出不是算法
确定性:一个算法所给出的每一个计算步骤(精确定义的,无二义性
确定性说明的是,算法中所执行下一步是确定的
可行性:算法中要执行的每一个步骤都可以在有限时间内完成
输入:算法有一组作为加工对象的量值,就是一组输入变量
输出:算法有一个或多个信息输出,它是算法对输入量的执行结果
算法与程序差异程序:是使用某种程序设计语言对一个算法或多个算法的具体实现
算法只是程序在的一部分,算法是程序解决问题的核心
同一个算法,由于使用不同的设计语言实现,所以,可能有许多程序对应于同一算法
算法必须提供足够的细节才能转化为程序
算法是可终止的,但程序不一定,程序可在无外来干涉情况下一直执行下去;程序可以既无输入数据,又无输出信息
空间复杂性1)指令空间:指令空间是指用来存储经过编译之后的程序指令所需的空