电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据结构软件

375页
  • 卖家[上传人]:给****
  • 文档编号:56151246
  • 上传时间:2018-10-10
  • 文档格式:PPT
  • 文档大小:3.14MB
  • / 375 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1,数 据 结 构,(C语言版),作者:黎剑兵,2,第 一 章 绪 论,学习内容 常用术语算法评价时间复杂度与空间复杂度的分析 重点了解逻辑结构 物理结构和数据的运算三方面相关概念及相互关系 难点 时间复杂度的分析方法 掌握 用类C语言的表示方法会用类C编写程序,3,第 一 章 绪 论,计算机科技 是 一门研究用计算机进行信息表示和处理的科学。 主要涉及两方面的问题:信息的表示和信息的处理信息的表示和组织直接关系到处理信息的程序 的效率,随着计算机的应用领域的扩大。信息量的增加,信息范围的拓宽,使系统程序和应用程序的规模的日趋增大,结构也日趋增大。因此,为了编写出一个“好”的程序,必须分析 处理的对象的特征及个对象之间的存在的关系。这就是本课程所要研究的问题。,4,第 一 章 绪 论,计算机程序 是 对信息进行加工处理。这些信息之间大多数情况下往往具有重要的结构关系。这就是数据结构的内容。那么,什么是数据结构呢?,5,1.地位,第 一 章 绪 论,6,1.地位,第 一 章 绪 论,数据结构 Data Structure,7,数据模型,问题,实现,2.主要内容,第 一 章 绪 论,8,数

      2、据模型,问题,实现,2.主要内容,第 一 章 绪 论,(1)要对所加工的对象进行逻辑组织 (2)如何把加工对象存储到计算机中去? (3)数据运算,9,3. 学科定义, 什么是数据结构,数据结构 是一门研究非数值 计算的程序设 计问题中计算机的 操作对象以及它们之间的关系和 操作等等的学科。,10, 基本概念和术语,数据元素(data element) 数据基本单位,也称节或孩子,可由若干个数据项组成。数据项是数据最小单位 数据(data) 是对客观事物的 表示,指所有能输入到计算机并被计算机程序处理的符号的总称。 数据对象( data object)性质相同的数据元素的集合 数据结构 数据元素之间的相互关系,11,1) 集合, 基本概念和术语,数据间的四种典型结构:,2)线形,3)树形,4)图或网络:,12, 基本概念和术语,四种典型结构:,1) 集合,13,四种典型结构, 基本概念和术语,2)线形:,14,四种典型结构:, 基本概念和术语,3)树形:,15,四种典型结构:, 基本概念和术语,4)图或网络:,16, 基本概念和术语,(5)逻辑结构:从具体问题抽象出的数学模型。体现逻辑关

      3、系。,(6)物理结构(存储结构): DE及关系在计算机中的表示。 DE存储称为节点 关系存储:a. 顺序存储 b. 链式存储,17, 基本概念和术语,(7)DS广义定义: DE 的逻 辑 结 构 DE 的物 理 结 构 DE 的 抽 象 运 算(8)基本操作 加工型:插入 删除 更新 排序 引用型:查找,18, 基本概念和术语,19, 算法和算法分析,一、算法定义,算法是对特定问题求解步骤的一种描述,是指令的有限序列。特性:有穷性 确定性 可行性 输入 输出,20, 算法和算法分析,二、算法的描述与分析 描述:类C语言 要求 正确性: a. 语法 b. n个输入 c. 一组典型的苛刻的输入 d. 所有输入 可读性 健壮性 效率与存贮量,21, 算法和算法分析,分析标准a 、时间复杂度 :算法中基本操作重复执行的次数(频度)。T(o)=O(f(n)时间复杂度分为平均时间复杂度和最坏时间复杂度复杂度的值取规模函数最高阶,22,分析标准a 、时间复杂度 :算法中基本操作重复执行的次数。T(o)=O(f(n)时间复杂度分为平均时间复杂度和最坏时间复杂度复杂度的值取规模函数最高阶, 算法和算法分

      4、析,b 、空间复杂度: 算法所需存贮空间S(n)=O(f(n),23, 算法和算法分析,例:分析下列语句段的时间复杂度m = 0; 1for( k=0;kn;k+) n+1for(j=0;jk;j+) n(n+1)/2m +=2; O(n2),24,习题与练习 一,1.简要回答下列问题:a. 数据与数据元素有何区别?b. 逻辑结构与存储结构是什么?它们 是什么关系?c. 什么是算法?它有什么特点?,25,习题与练习 一,2. 试写一个算法,统计输入的100个整数中奇数和偶数的个数。3. 设计下面问题算法,并分析最坏情况时间复杂性:在数组 A1n中查找值为 K的元素,若找到输出其位置 i ( 0 i n+1),否则输出0。,26,习题与练习 一,4. 设 n 为正整数,写出下列程序段的时间复杂度: (1)for(I=1;In;I+)m=m+I;for(j=0;jn;j+) count +=m+j; ,27,习题与练习 一,(2)for(I=0;In;I+)m=m+I;for(j=0;j10;) count +=m+j;j+; ,28,习题与练习 一,(3)k=1;s=0;while(s=

      5、n-1)k=k+s*6;s+;printf(“%d,%d”,s,k);,29,第 二 章 线 性 表,学习内容线性表定义线性表的抽象数据结构线性表的顺序存储和操作实现线性表的链接存储和在链表上的操作实现线性表在双向链表操作实现,30,第二章 线性表,线性结构特点:,在数据元素的非空有限集合中1)“第一个 ”唯一 2)“最后一个”唯一3)除第一个外,每一个有且仅有一个直接前驱4)除最后一个外,每一个均有且仅有一个直接后继,31,一、线性表的定义,第二章 线性表,表头元素,表尾元素,2.1 线性表的类型定义,32,2.1 线性表的类型定义,一、线性表的定义,一个线性表可以用一个标识符来命名:A=(a1 , a2 , , ai , ai+1 , , an)ai可以是基本数据类型也可以是struct 类型,33,2.1 线性表的类型定义,二、线性结构特点,在数据元素的非空有限集中 元素个数n表长度,n=0空表 存在唯一的一个被称作“第一个”的数据元素 存在唯一的一个被称作“最后一个”的数据元素 除第一个外,集合中的每个数据元素均只有一个前趋 除最后一个外,集合中的每个数据元素均只有一个后继 元

      6、素同构,且不能出现缺项,34,2.1 线性表的类型定义,线性表几个具体例子,L1=(a,b,c,4,7,+,-,*,/) L2=(25,35,28,49,51,87,46,32,88) L3=(“BASIC”,“PASCAL”,“JAVA”,“OK”) L4=(a,b,c,d,e,f,g,h,i,j,k,x,y,z),35,2.1 线性表的类型定义,基本运算,( 1 ) 初始化 initList(sq)。其作用是建立一个空表sq(即建立线性表的构架,但不含任何数据元素)。 ( 2 ) 求表长 ListLen(sq)。其作用是返回线性表sq的长度。 (3)读表元素 GetElem(sq,i)。若1iListLen(sq), 则其作用是返回线性表sq的第i个数据元素;否则,返回NULL。,36,2.1 线性表的类型定义,基本运算,(4)定位(按值查找)LocateElem(sq,x)。若sq中存在一个或多个值与x相等的元素,则其作用是返回这些元素的序号的最小值;否则,返回0。,37,基本运算,(5)插入ListInsert(sq,x,i)。其作用是在线性表sq的第i个位置上增加一个以x为值

      7、的新元素,使sq由(a1,ai-1,ai,an)变为(a1,ai-1,x,ai,an)。参数i的合法取值范围是:1in+1,2.1 线性表的类型定义,38,2.1 线性表的类型定义,基本运算,(6)删除ListDelete(sq,i)。其作用是删除线性表sq的第i个元素ai,使sq由(a1,ai-1,ai,ai+l,an)变为(a1,ai-1,ai+1,an)。参数i的合法取值范围是:1in。,39,2.1 线性表的类型定义,基本运算,(7)求前趋 PriorElem(sq,e) 若线性表中存在元素e且不是第一个,其作用是返回e的前趋元素;否则,返回NULL。 (8)求后继 NextElem(sq,e) 若线性表中存在元素e且不是最后一个,其作用是返回e的后继元素;否则,返回NULL,40,2.1 线性表的类型定义,基本运算,应用基本运算可以实现线性表的其他运算,如求任一给定数据元素的直接后继或直接前趋,将两个线性表合并成一个线性表或将一个线性表拆分成两个线性表等等。另一方面,在实际应用中,可以根据具体需要选择适当的基本运算,41,2.1 线性表的类型定义,解本题的算法思路是:依次检查

      8、线性表B中的每个元素,看它是否在线性表A中。若在表A中,则将其从A中删除。,基本运算,例2.1 利用线性表的基本运算,编写在线性表A中删除线性表B中出现的元素的算法。,42,2.1 线性表的类型定义,void delete(sqlist /若在线性表A/中找到则将其删除 ,43,2.1 线性表的类型定义,解 先始化线性表C,然后依次检查线性表A中的每个元素,看它是否在线性表B中;若在线性表B中,则将其插入到线性表C中.,基本运算,例2.2 利用线性表的基本运算,编写将线性表A和B中公共元素生成线性表C的算法,44,2.1 线性表的类型定义,void celem(sqlist A,sqlist B,sqlist /若在线性表B中 /找到,将其插入C,45,2.2 线性表的顺序存储和实现,一、 线性表的顺序存储(顺序表) 定义:把线性表中所有元素按其逻辑顺序依次存储到指定位置开始的连续空间中。即用一组地址连续的存储单元存放一个线性表 特点: 实现逻辑上相邻物理地址相邻 实现随机存取 实现: (一维)数组,46,2.2 线性表的顺序存储和实现,ElemType类型的数组listMaxSize

      9、存储线性表A= (a1 , a2 , , ai , ai+1 , , an) 元素地址计算方法 第i个元素的存储位置为:list+(i-1)*sizeof(ElemType),线性表的顺序存储结构示意图,47,2.2 线性表的顺序存储和实现,元素地址计算方法 : lLOC(ai)=LOC(a1)+(i-1)*LlLOC(ai+1)=LOC(ai)+L其中:uL一个元素占用的存储单元个数uLOC(ai)线性表第i个元素的地址,48,a2,2.2 线性表的顺序存储和实现,49,2.2 线性表的顺序存储和实现,线性表的顺序存储示例(图书资料),typedef struct card int num;char name20;char author10;char publisher30;float price; DATATYPE;,50,可以定义为静态数组或变量 DATATYPE libraryM; 或动态申请和释放内存 DATATYPE *pData; pData=(DATATYPE*)malloc(sizeof(DATATYPE); free(pData );,2.2 线性表的顺序存储和实现,

      《数据结构软件》由会员给****分享,可在线阅读,更多相关《数据结构软件》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.