- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 数据结构与算法new.ppt
第一章 数据结构与算法 1.1 算法 1.1.1算法的基本概念 所谓算法是指解题方案的准确而完整的描述。 对于一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限长的时间而得到正确的结果,则称这个问题是算法可解的。算法提供的是一种程序设计思想,但算法不等于程序。 1.算法的基本特征 作为一个算法,一般应具有以下几个基本特征: ①可行性 ②确定性 ③有穷性 ④ 拥有足够的情报 描述算法的工具通常有传统流程图、N-S结构流程图、算法描述语言等。 一个算法一般都可以用顺序、选择和循环三种基本控制结构组合而成。 2.算法设计基本方法 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。计算机算法不同于人工处理的方法。 ①列举法 ②归纳法 ③递推 ④递归 ⑤ 减半递推技术 ⑥回溯法 算法的时间复杂度是指算法执行过程中所需要的基本运算次数 算法的空间复杂度是指算法执行过程中所需要的存储空间 1.3 线性表及其顺序存储结构 1.3.1线性表的基本结构 线性表(Linear List)是最简单、最常用的一种数据结构。 线性表由一组数据元素组成。数据元素的含义很广泛,在不同的具体情况下,它可以有不同的含义。例如一个n维向量(x1,x2,x3,…,xn)是一个长度为n的线性表,其中每一个分量就是一个数据元素。又如,英文小写字母表(a,b,c,…,z)是一个长度为26的线性表。 1.3.2线性表的顺序存储结构 在计算机中存放线性表,一种最简单的方法是顺序存储,也称为顺序分配。 线性表的顺序存储结构具有以下两个基本特点: ①线性表中所有元素所占的存储空间是连续的; ② 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 由此可以看出,在线性表的顺序存储结构中,其前后件两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面。 在线性表的顺序存储结构下,可以对线性表进行各种处理,主要运算有:线性表的插入、删除、查找、排序、分解/合并、复制和逆转等运算。 1.3.3顺序表的插入运算 首先举一个例子来说明如何在顺序存储结构的线性表中插入一个新元素。 例1:图1为一个长度为8的线性表顺序存储在长度为 10的存储空间中。现在要求在第2个元素(即18)之前插入一个新元素87。其插入过程如下: 首先从最后一个元素开始直到第2 个元素,将其中的每一个元素均依次往后移动一个位置,然后将新元素87插入到第2个位置。 插入一个新元素后,线性表的长度变成了9,如图2所示。 如果再要在线性表的第9个元素之前插入一个新元素14,则采用类似的方法,将第9个元素往后移动一个位置,然后将新元素插入到第9个位置。插入后线性表的长度变成了10,如图3所示。 现在,为线性表开辟的存储空间已经满了,不能再插入新的元素了。如果再要插入,则会造成“上溢”错误。 1.4 栈和队列 1.4.1栈及其基本运算 1.什么是栈 例题1 例题2 栈实际上也是线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,其插入与删除运算都只在线性表的一端进行。即在这种线性表的结构中,一端是封闭的,不允许进行插入与删除元素;另一端是开口的,允许插入与删除元素。在顺序存储结构下,对这种类型线性表的插入与删除运算是不需要移动表中其他数据元素的。这种线性表称为栈。 栈(stack)是限定在一端进行插入与删除的线性表。 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”(FILO—First In Last Out)或“后进先出”(LIFO—Last In First Out)的原则组织数据的,因此,栈也被称为“先进后出”或“后进先出”表。 通常用指针top 来指示栈顶的位置,用指针bottom指向栈底。 往栈中插入一个元素称为入栈运算,从栈中删除一个元素(即删除栈顶元素)称为退栈运算。栈顶top指针动态反映了栈中元素的变化情况。 栈的基本运算有三种:入栈、退栈和读栈顶元素。 (1)入栈运算 入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作;首先将栈顶指针进一 ( 即top加1),然后将新元素插入到栈顶指针指向的位置。 当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。这种情况称为栈“上溢” (2)退栈运算 退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(既top减1)。 (3)读栈顶元素 读栈顶元素是指将栈顶元素赋给一个指定的变
您可能关注的文档
最近下载
- 红色革命文化-2025年高考语文作文复习之主题素材积累与运用.pdf VIP
- 中国传媒大学《微视频创意与制作》课件-微视频创意与制作-PPT-微视频创意与制作(第一章).pptx VIP
- 事故救援应急响应专项预案事故救援应急响应专项预案.doc VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 千级无尘室工程施工方案(3篇).docx VIP
- 深度解析《GBT 44037-2024焦炭溶损率及溶损后强度试验方法》.pptx
- 2025 中级注册安全工程师《金属非金属矿山安全》速记口诀.pdf
- 2025年中国吸顶式车载显示器数据监测研究报告.docx
- 九年级化学酸、碱、盐、氧化物知识小结 “三表一图”(二)天津版.doc VIP
- 部编版六年级上册语文第一周(草原-丁香结)达标测评卷 含答案.docx VIP
文档评论(0)