二级公共基础1_数据结构与算法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章数据结构与算法重点10-12分 1. 算法的基本概念 算法的定义:是对特定问题求解步骤的一种描述,是指令的有限序列。 程序是算法在计算机中的实现。 (1)算法具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (2)算法的基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 (3)算法的3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 算法的描述方法:流程图、程序设计语言(类语言或称伪代码)、自然语言。 (5)指令系统:指的是一个计算机系统能执行的所有指令的集合。 2. 算法复杂度 算法复杂度包括时间复杂度和空间复杂度。注意两者的区别,无混淆。 空间复杂度:执行这个算法所需要的内存空间。 时间复杂度 :执行算法所需要的计算工作量。 时间复杂度的度量方法: ?? 算法的运行时间=算法中所有语句的执行次数(频度)之和 3.数据结构研究的3个方面 ① 逻辑结构:数据集合中各数据元素之间所固有的逻辑关系; ② 存储结构:在对数据进行处理时,各数据元素在计算机中的存储关系; ③ 对各种数据结构进行的运算。 逻辑结构:是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间的前后件关系,通常记为R。一个数据结构可以表示成:B=(D,R) 包括线性结构(如线性表、栈、队列、串、数组、广义表)和非线性结构(如树、图)。数据的逻辑结构分类为: (2) 存储结构:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。 由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。 链式存储结构就是在每个结点中至少包含一个指针域,用指针来体现数据元素之间逻辑上的联系。 (3) 运算:对数据元素施加的操作,如插入、删除、修改、查找、排序等 1.2.2 线性结构(线性表) (1)如果一个非空的数据结构满足下列两个条件: ①有且只有一个根结点②每个结点最多有一个前件,也最多有一个后件。 则称该数据结构为线性结构又称线性表。在一个线性结构中插入或删除任何一个结点后还应是线性结构。栈、队列、串等都为线性结构。 如果一个数据结构不是线性结构,则称之为非线性结构。数组、广义表、树和图等数据结构都是非线性结构。 (2)线性表的顺序存储结构具有以下两个基本特点: ① 线性表中所有元素所占的存储空间是连续的; ② 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。 顺序存储结构的优缺点。 ?? 优点:逻辑相邻,物理相邻;可随机存取任一元素;存储空间使用紧凑,存储密度 =1。 ?? 缺点:插入、删除操作需要移动大量的元素;预先分配空间需按最大空间分配,利用不充分;表容量难以扩充。 (3)顺序表的运算有查找、插入、删除3种。 插入运算(在第i 个元素之前插入一个元素): 检查i 值是否超出所允许的范围(1≤i≤n+1),若超出,则进行“超出范围”错误处理;将线性表的第i 个元素和它后面的所有元素均向后移动一个位置;将新元素写入到空出的第i 个位置上; 使线性表的长度增1。 删除运算(删除第i 个元素后面的一个元素)。 ?? 检查i 值是否超出所允许的范围(1≤i≤n),若超出,则进行“超出范围”错误处理;将线性表的第i 个元素后面的所有元素均向前移动一个位置; 使线性表的长度减1。 1.3 栈 1. 栈的基本概念 栈(stack)是一种特殊的线性表,是限定只在一端进行插入与删除的线性表。 在栈中,一端是封闭的,既不允许进行插入元素,也不允许删除元素,称这一端为栈底;另一端是开口的,允许插入和删除元素,称这一端为栈顶。当表中没有元素时称为空栈。 栈是按照“先进后出”(FILO)或“后进先出”(Last In First Out,LIFO)的原则组织数据的。 2. 栈的顺序存储及其运算 栈的基本运算有3种:入栈、退栈与读栈顶元素。

文档评论(0)

白领文档(原创) + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档