第 1 章 数据结构与算法(10-12 分)考点:1.算法(****)2.数据结构(***)3.线性表及其顺序存储结构(**)4.栈和队列(*****)5.线性链表(**)6.树与二叉树(*****)7.查找技术(****)8.排序技术(***)一、数据结构与算法1、概念算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作2、数据的逻辑结构线性结构(例:一维数组、链表、栈、队列、串、线性表)非线性结构(例:多维数组、广义表、树、图)3、数据的存储结构(线性表)顺序存储方法:线性表中所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的链接存储方法:逻辑上相邻的结点,物理上也相邻,存储单元可以是连续的,也可以是不连续的计算机中有数据进行处理时,数据的存储结构对程序的执行效率有很大的关系一种数据的逻辑结构根据需要可以表示成多种存储结构.数组是数据的逻辑结构,可以用多种存储结构来表示线性链表:就是指线性表的链式存储结构,简称链表4、算法的基本特征可行性:针对实际问题而设计的算法,执行后能够得到满意的结果确定性:算法中的每一个步骤都必须有明确的定义,不允许出现歧义性有穷性:算法必须在有限时间内做完,即必须在执行有限个步骤之后终止,算法程序的运行时间是有限的拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效5、算法的复杂度时间复杂度:该算法执行的时间耗费,是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数空间复杂度:该算法执行时所耗费的存储空间6、顺序表和链表的比较:基于空间的考虑:(1)顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。(2)顺序表占的存储空间必须是连续的,而链表占的存储空间可以是连续的,也可是不连续的二、栈栈实际也是线性表,只不过是一种特别的线性表。栈称为“先进后出"表或“后进先出”表,顺序存储、链式存储栈的计算:求栈中元素的个数:栈底元素—栈顶元素栈是限定在一端进行插入与删除的线性表,允许插入元素的一端为栈顶,允许删除元素的一端为栈底,栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素则总是最先被插入而最后被删除的元素三、队列队列也是一种运算受限的线性表,是一种“先进先出”,“后进后栈顶 topABCD栈底 bot...