- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二部分 二级公共基础
第一章 数据结构与算法
一、算法
1、算法:是指解题方案的准确而完整的描述。简单来说,就是解决问题的操作步骤。值得注意的是 ,算法不等于程序,也不等同于数学上的计算方法。程序的编制不可能优于算法。
2、算法应具有的特征:(1)可行性(2)确定性(3)有穷性。有穷性是指算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,同时也包括合理的执行时间的含义。不要把有穷性理解成实现该算法的程序语句条数有限。(4)拥有足够的情报。
3、算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
(1)、基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
(2)、算法的控制结构:算法中各个操作之间执行的顺序称为算法的控制结构,控制结构包括顺序结构、选择结构、循环结构。
4、算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。
5、算法复杂度包括算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。算法的计算工作量是用算法所执行的基本运算次数来度量的,而不是用时间长短来衡量。
算法空间复杂度是指执行这个算法所需要的内存空间。
二、数据结构
1、数据结构:指相互关联的数据元素的集合。
2、逻辑结构:数据集合中各元素的逻辑关系,其中逻辑关系是指数据的前后关系。
3、存储结构:也称为物理结构,数据集合中各元素在计算机中存储形式或称为在计算机中表示形式。
4、线性结构:数据集合中各个元素在逻辑上的先后关系为线性的,具有这样特点的数据结构称
为线性结构。如下图所示的数据结构:
春 夏 秋 冬
线性结构条件:
(1)有且只有一个根结点。
(2)每一个结点最多有一个前件,也最多有一个后件。
5、非线性结构:数据集合中各个元素在逻辑上的先后关系为非线性的,具有这样的特点的数据结构称为非线性结构。如下图所示的数据结构:
6、顺序存储结构:通过数据元素在计算机存储器中的相对位置来表示出数据元素的逻辑关系,一般把逻辑上相邻的数据元素存储在物理位置相邻的存储单元中,这种存储形式的数据结构成 为顺序存储结构。
7、链式存储结构:每个节点除了包含数据本身之外,还至少包含一个指针,用指针来描述个各 个数据元素的逻辑上的先后关系,这种存储形式的数据结构称为链式存储结构。
如果一个数据结构中没有数据元素,则该数据结构称为空的数据结构。一个空的数据结构究竟属于线性结构还是属于非线性结构,这要根据具体情况来确定.该数据结构的算法按照线性结构 的规则来处理的,则属于线性结构,否则属于非线性结构.
三、线性表的顺序存储结构和链式存储结构
普通的线性结构习惯称为为线性表。线性表可以采用顺序存储和链式存储。顺序存储的线性表 称为顺序表,链式存储的线性表称为线性链表。
1、顺序表:按照逻辑上的先后顺序存储在连续的存储单元中.顺序表的特点:
(1)、存储空间是连续的。物理位置的先后顺序和逻辑上的先后顺序一致。
(2)、可以随机访问元素。
注:假定顺序表中的每个元素占用存储空间(字节数)相等,已知第一个元素的地址,在该前提 下,就可以计算出任意一个元素的地址。
(3)、对于元素经常需要变动的大线性表,插入和删除的效率比较低.
2、线性链表
在线性链表中,有一个专门的指针 HEAD 存储第一个元素的地址。除此之外,每一个存储结点 分为两个部分:一部分用于存储数据元素的值,称为数据域;另一个部分用来存储下一个元素的地址,称为指针域。
线性链表中各个数据的逻辑关系是由指针域来指明的,而顺序表中数据逻辑关系是由存储位置的先后顺序来指明的。
线性链表的特点:
(1)、存储空间不连续,随机存储。
(2)、顺序访问元素
(3)、在插入和删除元素时,不需要移动元素,只需改变相应指针域内容即可,所以方便插入删除运算。
单链表:每个存储结点只有一个指针域,该指针域用来指明下一个元素的地址。
双链表:每个存储结点只有两个指针域,一个指针域用来指明下一个元素的地址,另一个指针域用来指明上一个元素的地址。
循环链表:增加一个表头结点,其数据域数据位任意货根据需要设置,指针指向线性表的第一元素的结点。头指针指向表头结点;最后一个结点的指针域内容指向表头结点。循环链表中增加头结点,从而是在任何情况下,循环链表中至少有一个结点存在,从而是空表和非空表的运算统一。
四、栈和队列
栈和队列都是一种特殊的线性表,它们可以采用链式存储或顺序存储。
1、栈
(1)、栈是限定在一端进行插入与删除的线性表。允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。用 top 表示栈顶位置,用 bottom 表示栈底。 在栈中,栈顶指针指向栈顶元素,栈底指针指向存储空间中第一个
您可能关注的文档
最近下载
- 草牧场转让合同5篇.docx VIP
- (四级)保育师理论学习考试题库(浓缩300题).docx VIP
- 2025四级保育师资格考试题库及答案(浓缩400题).docx VIP
- 实施指南《GB_T10068-2020轴中心高为56mm及以上电机的机械振动振动的测量、评定及限值》实施指南.docx VIP
- 中小学生常见病防治课件.pptx VIP
- 1.1 原始社会的解体和阶级社会的演进:原始社会 课件-【新教材】高中政治统编版(2019)必修一(共29张PPT).pptx VIP
- 铝方通吊顶施工技术交底.pptx VIP
- DB23T1501-2013 水利堤(岸)坡防护工程格宾与雷诺护垫施工技术规范.pdf VIP
- 华为极简站点解决方案opm200.pdf VIP
- 北师大版七年级数学下册第二章测试题及答案下载.doc VIP
文档评论(0)