数据结构和算法.ppt
《数据结构和算法.ppt》由会员分享,可在线阅读,更多相关《数据结构和算法.ppt(72页珍藏版)》请在课桌文档上搜索。
1、重要性:,人类社会已步入信息时代;“计算”已成为理论研究、实验研究的基本手段;给我一个支点,我能撬动地球 给我一个接口,我能驱动地球,信息领域:,软件-核心问题是算法;算法+数据结构=程序设计 产品 软件,先修课程:,程序设计的经验、离散数学、概率分析,课程特点:,抽象、有难度,课程学习要求:,1、上课做好笔记;2、按时、独立、认真完成作业;3、独立完成实验:实验课前完成实验报告的前3个环节;进实验室完成程序的调试与测试;实验成绩综合给出。4、勤奋学习,积极思考,提出问题,解决问题。5、上课不迟到、不早退,班级考勤。,课程考核方法:,1、期末考试:50%;2、实验:30%;3、课堂笔记:5%;
2、4、平时表现(作业、考勤):5%;5、阶段测验:5%;6、课程总结:5%;,引言,一般来说,用计算机解决具体问题时,大致需要经过以下几个步骤:具体问题 抽象(数学)模型 分析 求解方法 程序设计 测试,数据结构是一门 讨论怎样合理地组织数据、建立合适的数据结构,从而提高计算机执行程序时的时间效率和空间效率问题的课程。,第1章 数据结构和算法,1.1 数据与数据类型 1.2 数据结构 1.3 算法的描述工具C语言 1.4 算法和算法评价 1.5 算法性能分析,数据 在计算机科学中,数据是指描述客观事物的数值、字符、相关符号等所有能够输入到计算机中并能被计算机程序处理的符号的总称。例如:数值数据、
3、字符、声音、图像、图形等,简单的说,数据是信息的载体,所有能够数字化的信息均可认为是数据,数据元素 数据元素是数据的基本单位,在程序设计时通常作为一个整体进行考虑和处理。同义词:元素、结点、顶点、记录、对象、元组等。,数据项 具有独立含义的最小标识单位 同义词:字段、域、属性等。,表中某一本书的相关数据(表中每一行)都是一个数据元素,每一个数据元素其具有独立意义。每一个数据元素由4个简单数据项(书号、书名、作者、价格)组成。,数据类型 是一个同类值的集合和定义在这个值集上的一组操作的总称。当我们在高级程序语言中定义每一种数据类型,在程序编译时计算机语言编译系统就知道了以下信息:(1)一组性质相
4、同的值集合,(2)一个预定的存储体系,(3)定义在这个值集合上的一组操作。数据类型可分为两类:,数据类型,简单数据类型、结构数据类型,简单数据类型 简单类型的数据是不可分解的整体,如整数、实数、字符、指针、枚举量等。请解释整型数据类型。答:整型数据类型通常有short(2字节)、int(2字节)、long(4字节)等形式,其值集为某个区间上的整数。如果整型是两个字节表示的,其值集范围是:-3276832767,定义在整型数据上的操作为:单目正(+)操作、负(-)操作,双目加(+)操作、减(-)操作、乘(*)操作、除(/)操作和取模(MOD)操作等算术运算,双目关系(,=,等)操作运算以及赋值(
5、=)操作等。,例,结构数据类型 结构类型由简单数据类型按照一定的规则构造而成。结构数据类型中还可包含结构数据类型,所以结构数据类型的数据可以分解成若干个简单数据类型的数据或子结构数据类型。也称作复合数据类型。,数据对象 数据对象是数据类型的实例,简称对象。数据对象举例。答:例如:25,是整型数据对象。A,是字符数据对象。char*p,定义p为一个字符指针对象。int a10,定义a为一个含有10个整型数的整型数组对象。Rectangle r,定义 r 为一个Rectangle类型的对象。RECtangle rec,定义 rec 为一个RECtangle 抽象数据类型的对象。,例,第1章 数据结
6、构和算法,1.1 数据与数据类型 1.2 数据结构 1.3 算法的描述工具C语言 1.4 算法和算法评价 1.5 算法性能分析,(1)数据的逻辑结构,即数据元素间的逻辑关系;(2)数据的存储结构,数据元素在计算机存储器中的存储方式;(3)数据的运算,对数据施加的操作。,数据结构 没有统一的定义,通常指数据元素之间的相互关系,即数据的组织形式;包括:,数据的逻辑结构定义:数据元素之间的相互联系称为数据的逻辑结构。,根据数据元素之间关系的不同特性,通常有下列四类基本结构。线性逻辑结构 树型逻辑结构 图型逻辑结构 集合逻辑结构,数据的逻辑结构可以用图形形象地表示。用图形中的每一个节点(或叫顶点)对应
7、着一个数据元素,用两节点间的连线(称有向边或弧)对应着关系中的一个序偶,其中第一个元素为起始点,第二个元素为终止点,箭头指向终止点。,线性逻辑结构,节点之间是一个对一个的关系,呈线性关系,是线性逻辑结构。它的特征是:若结构为非空集,则该结构有且只有一个开始节点和一个终端节点,并且所有节点都最多只有一个直接前趋和一个直接后继。,树形逻辑结构,它的特征是:节点之间是一个对多个的关系,一个节点可能有一个直接前趋和多个直接后继。呈树形关系,是树形数据结构(非线性结构)。,图形逻辑结构它的特征是:节点之间是多个对多个的关系,一个节点可能有多个直接前趋和多个直接后继。呈图形关系(非线性结构)。,集合逻辑结
8、构,集合中数据元素之间的关系是松散的,实际运算时可以用其它结构来表示它。,数据的存储结构 数据的存储结构是 用计算机处理具体问题时,必须考虑由这个具体问题抽象出的数据在计算机中的存储方式,以便于运算。通常情况下,数据在计算机中存储方式有以下四种:顺序存储 链接存储 索引存储 散列存储,指数据在计算机中的存储方式,顺序存储 将逻辑上相邻的结点存储在物理位置相邻的存储单元中,结点间的逻辑关系由存储单元的邻接关系来体现(3,5,6,8,23,12,54)=float an,例1.6,例1.7,链接存储 逻辑上相邻的结点不一定存储在物理位置相邻的存储单元中,结点间的逻辑关系由附加的指针字段来体现。一组
9、数据元素的集合(3,5,6),例1.8,例设有一组线性排列的数据元素(zhao,qian,sun,li,zhou,wu,zheng,wang),其链接存储形式如图所示。,索引存储 该方法在存储结点信息的同时,建立附加的索引表。索引表中的每一个索引项由唯一标识某结点的关键字以及该结点的地址组成。例,散列存储 应用一个函数,将每一个结点的关键字作为该函数的自变量,得到相应的函数值作为该结点的存储地址。有函数 y=2x,集合(3,5,6)的存储:,例,数据的运算 正如整数和实数分别对应不同的运算一样,不同逻辑结构的数据有不同的运算。数据运算不仅仅是加、减、乘、除、矩阵、微分、积分、方程等等这些数值计
10、算问题,还包括像在一张表格中,进行查找记录,增加记录,修改记录,删除记录等等操作运算,而怎样才能进行这样的运算呢?在数据结构中,这些运算常常涉及算法问题。,数据的运算例如:线性结构的数据数据可以非常方便地进行插入、删除数据元素,而对于树和图这样的非线性结构的数据可以有查询数据元素之间的关系、遍历数据元素等运算。通常情况下,逻辑关系不同的数据分别对应一组运算的集合;而数据的存储结构反映数据在计算机内部的存储安排,对具有相同逻辑关系的数据考虑其不同的物理存储,目的是为了提高算法的效率。,根据以上分析,我们可以看到数据结构的概念主要包括如图所示的三个方面的主要内容:,我们讨论两数据结构是否相同,主要
11、看它们的逻辑结构、存储结构和运算集合是否相同,这三者中只要有一个不同,都不能称这两个数据结构相同。,设有两个呈线性排列的数据分别是1,3,5,7,9和0.1,0.2,0.4,0.6,0.8(其中的每个数是数据元素),现将它们分别存放在整型一维数组A5和实型一维数组B5中。现在,我们来分析这两个数据的数据结构是否相同。,例,首先,这两个数据都是呈线性排列,则它们的逻辑结构均为线性逻辑结构;其次,它们分别存储在一维数组中,这使得逻辑位置相邻的数据元素在物理存储位置上也相邻,这样它们都属于顺序存储结构;另外,根据C语言语法规定,一维数组A5中的数据元素间可以进行加、减、乘、除和模运算,而一维数组B5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法
链接地址:https://www.desk33.com/p-229814.html