笔试数据结构与算法

上传人:自*** 文档编号:25970303 上传时间:2017-12-20 格式:PPT 页数:80 大小:1.25MB
返回 下载 相关 举报
笔试数据结构与算法_第1页
第1页 / 共80页
笔试数据结构与算法_第2页
第2页 / 共80页
笔试数据结构与算法_第3页
第3页 / 共80页
笔试数据结构与算法_第4页
第4页 / 共80页
笔试数据结构与算法_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《笔试数据结构与算法》由会员分享,可在线阅读,更多相关《笔试数据结构与算法(80页珍藏版)》请在金锄头文库上搜索。

1、第1章基本数据结构与算法,主讲:曾庆尚烟台大学文经学院电子系,二级ACCESS数据库基础知识,本章的重要性,2007年4月-2010年9月共8次计算机等级考试涉及到本章内容的题目有40题,平均每次接近10分,因此本章还是很重要的。本章在考试中只涉及笔试题目,上机不考。,二级ACCESS数据访问页,关键考点,顺序存储与链式存储的基本概念 栈、队列的基本概念与基本操作 循环队列元素个数的计算 算法时间、空间复杂度的概念几种查找与排序的比较次数二叉树的遍历二叉树结点个数的计算,基本数据结构与算法,本章主要内容,算法 数据结构 数据结构研究的主要内容 基本概念和术语 数据结构类型 线性结构和非线性结构

2、 顺序存储与链式存储 线性表 栈和队列 线性链表 树与二叉树 查找和排序 图,基本数据结构与算法,1.1 算法,算法的基本概念 算法:解题方案的准确而完整的描述。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。算法不等于程序,程序不可能优于算法。 基本特性 可行性:根据实际问题设计的算法,执行得到满意结果 确定性:每一步骤必须有明确定义,不允许有多义性。 有穷性:算法必须能在有限的时间内做完。 拥有足够的情报:输入和输出,方可执行。,基本数据结构与算法,1.1 算法,算法的基本要素 1.算法中对数据的运算和操作 算术运算:、等 逻辑

3、运算:、=、=、!=等 关系运算:and、or、not等 数据传输:w、r等 2.算法的控制结构 算法中各操作之间的执行顺序 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等 算法可以用顺序、选择、循环三种基本机构组合而成。,基本数据结构与算法,1.1 算法,算法设计基本方法 (1)列举法:根据问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。 (2)归纳法:通过列举少量的特殊情况,经过分析,最后找出一般的关系。 (3)递推:是指从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。 (4)递归:将问题逐层分解的过程。 (5)减半递推技术:

4、 “减半”,是指将问题规模减半,而问题性质不变; “递推”,是指重复“减半”过程。 (6)回溯法:分析问题,找出一个解决总线索,然后沿着这个线索逐步试探。,基本数据结构与算法,1.1 算法,算法的复杂度:时间复杂度、空间复杂度 (P5)算法的时间复杂度 算法时间复杂度是指执行算法所需要的计算工作量。 工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即 算法的工作量=f(n) 算法空间复杂度 算法空间复杂度是指执行这个算法所需要的内存空间。 存储空间包括:算法程序所占的空间、 输入数据所占的空间、算法执行过程中所需要的额外空间。,基本数据结构与算法,3.2.1

5、 数据结构研究的主要内容,当今计算机应用的特点 所处理的数据量大且具有一定的关系; 对其操作不再是单纯的数值计算,而更多地是需要对其进行组织、管理和检索。 应用举例1学籍档案管理 假设一个学籍档案管理系统应包含如下表所示的学生信息。,基本数据结构与算法,特点 每个学生的信息占据一行,所有学生的信息按学号顺序依次排列构成一张表格; 表中每个学生的信息依据学号的大小存在着一种前后关系. 对它的操作通常是插入某个学生的信息,删除某个学生的信息,更新某个学生的信息,按条件检索某个学生的信息等等。,数据结构研究的主要内容,基本数据结构与算法,应用举例2制定教学计划 在制定教学计划时,需要考虑各门课程的开

6、设顺序。有些课程需要先导课程,有些则不需要;而有些课程又是其他课程的先导课程。比如,计算机专业课程的开设情况如下表所示:,数据结构研究的主要内容,基本数据结构与算法,数据结构研究的主要内容,特点 课程的先后关系用图结构描述; 通过实施创建图结构,按要求将图结构中的顶点进行线性排序。,基本数据结构与算法,数据结构主要研究以下三个方面的问题(P7) 数据的逻辑结构:数据集合中各元素的信息,及元素之间所固有的逻辑关系(前后件关系) 数据的存储结构:各数据元素在计算机中的存储关系 对各种数据结构进行的运算 主要目的是为了提高数据的效率。所谓提高数据处理的效率,主要包括两个方面:一是提高数据处理的速度,

7、二是尽量节省在数据处理过程中所占用的计算机存储空间。,数据结构研究的主要内容,基本数据结构与算法,数据结构是一门研究数据组织、存储和运算的一般方法的学科。是相互有关联的数据元素的集合。,1.2 数据结构的基本概念,基本数据结构与算法,能输入到计算机中 并能被计算机程序处理的 符号的集合。,整数(1,2)、实数(1.1,1.2) 字符串(Beijing)、 图形、声音。,数据结构是一门研究数据组织、存储和运算的一般方法的学科。,1.2 数据结构的基本概念,基本数据结构与算法,计算机管理图书问题 图书馆里有各种卡片:有按书名编排的、有按作者编排的、有按分类编排。 如何将查询图书的这些信息存入计算机

8、中既要考虑查询时间短,又要考虑节省空间,数据结构是一门研究数据组织、存储和运算的一般方法的学科。,1.2 数据结构的基本概念,基本数据结构与算法,最简单的办法之一是建立一张表,每一本书的信息在表中占一行,如,数据结构是一门研究数据组织、存储和运算的一般方法的学科。,1.2 数据结构的基本概念,基本数据结构与算法,如何将0,1,2,3,4,5,6,7,8,9这10个数存放在 计算机中能最快地达到你所需要的目的? 目的不同,最佳的存储方方法就不同。 从大到小排列:9,8,7,6,5,4,3,2,1,0 输出偶数:0,2,4,6,8,1,3,5,7,9,数据元素在 计算机中的表示,数据结构是一门研究

9、数据组织、存储和运算的一般方法的学科。,1.2 数据结构的基本概念,基本数据结构与算法,对数据结构中的节点进行操作处理 (插入、删除、修改、查找、排序),数据结构是一门研究数据组织、存储和运算的一般方法的学科。,1.2 数据结构的基本概念,基本数据结构与算法,数据元素(Data Element) 数据元素是数据的基本单位,即数据集合中的个体。 有时一个数据元素可由若干数据项(Data Item)组成。数据项是数据的最小单位。,数据元素亦称节点或记录。,1.2 数据结构的基本概念,基本数据结构与算法,数据结构可描述为 Group=(D,R),有限个数据元素的集合,有限个节点间关系的集合,1.2

10、数据结构的基本概念,基本数据结构与算法,1数据的逻辑结构,2、数据的存储结构,3、数据的运算:检索、排序、插入、删除、修改等。,A线性结构,B非线性结构,A 顺序存储,B 链式存储,线性表,栈,队,树形结构,图形结构,数据结构的三个方面,数据结构类型,基本数据结构与算法,线性结构和非线性结构,线性结构条件 (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 (3)首节点无前件,尾节点无后件。 非线性结构:不满足线性结构条件的数据结构 注意:在一个线性结构中插入或删除任何一个节点后还应是线性结构;否则,不能称为线性结构。,基本数据结构与算法,线性结构和非线性结构,树形

11、结构,基本数据结构与算法,树形结构 结点间具有分层次的连接关系,线性结构和非线性结构,树形结构,基本数据结构与算法,线性结构和非线性结构,图形结构:节点间的连接任意,基本数据结构与算法,顺序存储与链式存储,顺序存储 常用于线性数据结构,将逻辑上相邻的数据元素存储在物理上相邻的存储单元里。 三个弱点 插入或删除操作时,需移动大量元数。 长度变化较大时,需按最大空间分配。 表的容量难以扩充,基本数据结构与算法,每个节点都由两部分组成:数据域和指针域。 数据域:存放元素本身的数据, 指针域:存放指针,体现数据元素之间的逻辑联系,顺序存储与链式存储,链接存储结构特点 比顺序存储结构的存储密度小 (每个

12、节点都由数据域和指针愈组成)。 逻辑上相邻的节点物理上不必相邻。 插入、删除灵活(不必移动节点,仅改变节点中的指针)。,链接存储结构,基本数据结构与算法,顺序存储与链式存储,链式存储的地址映射表,基本数据结构与算法,1.3 线性表,线性表的基本概念 (P15) 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 非空线性表的结构特征 有且只有一个根结点a1,它无前件;有且只有一个终端结点an,它无后件; 除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。,基本数据结构与算法,在线性表上

13、常用的运算有 初始化、求长度、取元素、修改、插入、删除、检索、排序。 线性表的插入操作 (P17) 在线性表L中第i个数据元素之前插入数据元素e 检查插入要求的有关参数的合理性 把原来第n个数据元素至第i个元素(共n-i+1)依次后移一个数组元素的位置。 把新数据元素放在第i个位置上 修正线性表的数据元素个数。 线性表中含有n个数据元素,在进行插入操作时,若假定在n+1个位置上插入元素的可能性均等,则平均移动元素的个数为:n/2,1.3 线性表,基本数据结构与算法,线性表的插入操作(时间复杂度O(n)),1.3 线性表,基本数据结构与算法,线性表的删除操作(时间复杂度O(n))(P18),1.

14、3 线性表,基本数据结构与算法,1.4 栈和队列(P19),栈和队列是两种运算时要受到某些特殊限制的线性表,故也称为限定性的数据结构。 栈:限定只能在表的一端进行插入和删除的特殊的线性表,此种结构称为后进先出。 设栈s=(a1,a2,,ai,an) 其中a1是栈底元素, an是栈顶元素。 栈顶(top):允许插入和删除的一端; 约定top始终指向新数据元素将存放的位置。 栈底(bottom):不允许插入和删除的一端。,基本数据结构与算法,队列的主要运算 设置一个空队列; 插入一个新的队尾(rear)元素,称为进队; 删除队头(front)元素,称为出队; 读取队头元素;,a1 , a2 , a

15、3 , a4 , an-1 , an,队头,队尾,1.4 栈和队列,队列:限定只能在表的一端进行插入,在表的另一端进行删除的线性表。此种结构称为先进先出(FIFO)表。,基本数据结构与算法,1.4 栈和队列,队列的主要运算 队空时,令rear=front=0; 元素个数rear-front 当有新元素入队时,尾指针加1,当有元素出队时,头指针加1。故在非空队列中,头指针始终指向队头元素前一个位置,而尾指针始终指向队尾元素的位置,基本数据结构与算法,循环队列元素个数=(rear-front+n) mod n,a1 , a2 , a3 , a4 , an-1 , an,队头,队尾,1.4 栈和队列,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号