- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
公共根底知识考点
数据结构与算法
1、算法的概念
算法是解决问题的操作方案
算法的根本特征
可行性:步骤可以实现;执行效果到达预期目的。
确定性:步骤明确,不准有多义性
有穷性:有限的时间完成
拥有足够的情报:算法在拥有足够的输入信息和初始化信息时,才是有效的。
算法复杂度
复杂度是用来衡量算法的优劣
算法的时间复杂度:是指算法所需要的计算工作与算法时特定的输入有
关。
算法的根本工作量是用算法所执行的根本运算次数来度量的。
算法的空间复杂度:是指这个算法所需要的内存空间。
2、数据结构的根本概念
数据结构是指相互有关联的数据元素的集合,包含俩个要素?数据”和“结构”(这 些数据元素都具有某个共同的特征)
数据结构分为:数据的逻辑结构(反映数据的逻辑关系,即前后件关系)
数据的存储结构(又称物理结构,是数据的逻辑结构在计算机存
储空间中的存放方式)
(2 )数据结构的表示
二元关系表示:B= ( D , R )
B表示数据结构,D是数据元素的集合,R是D上关系的集合,它反响了 D中
各数据元素之间的前后件关系。
数据结构的形表示:用中间标有元素值的方框表示数据元素,一般称之为数据
数据结构的
节点。
早督午餐晚餐一日三餐数据结构的图形表示(线性结构)
早督
午餐
晚餐
一日三餐数据结构的图形表示(线性结构)
组织层次数据结构的图形表示(非线性结构)
由前后件关系引出的3个根本概念
根节点:数据结构中,没有前件的节点
终端节点(或叶子节点):数据结构中没有后件的节点
内部节点:数据结构中,除了根节点和终端节点以外的节点
(3)线性结构与非线性结构
根据数据结构中个数据元素之间前后件关系的复杂程度,一般将数据结构划分为
俩大类型:线性结构与非线性结构
?线性结构:
有且只有一个根节点
每一个根节点最多只有一个前件,也最多又一个后件
?非线性结构:
不满足以上俩个条件的数据结构
主要是指树形结构和网状结构 如果一个数据结构中没有数据元素,那么称该数据结构为空的数据结构
3、线性表及其顺序存储结构
(1)线性表的根本概念
线性结构习惯称为线性表,线性表是最简单也是最常用的一种数据结构 线性表是n ( n0 )个数据元素构成的有限序列,表中出第一个元素外的每一个 元素,有且只有一个前件,除最后一个外,有且只有一个后件。
线性表要么是空表,要么可以表示为(a1 , a2 , a3 an )
节点个数n称为线性的长度,当n=0时,称为空表
(2)线性表的顺序存储结构
通常,线性表可以采用顺序存储和链接存储俩种存储结构。
顺序存储时线性表最简单的方法:将表中的元素一个接一个地存储在相邻的存储
区域中。这种顺序表示的统性表也称为顺序表。.N
区域中。这种顺序表示的统性表也称为顺序表。
.N
顺序表具有以下俩个根本特征:
?线性表中所有的元素所占的存储空间是连续的;
?线性表中各数据元素在存储空间中是按逻辑顺序一次存放的。
链表的特征(第5点也有讲解)
?存储单元是任意的,即各数据节点的存储序号可以是连续,也可以是不连续 的。
?各节点在存储空间中的位置关系与逻辑关系不一致。
4、栈和列队
(1 )栈及其根本运算 栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行,允许插 入的一端为栈顶,不允许的一端为栈底。无元素时,称为空栈。
栈的修改原那么为是“后进先出”或“先进后出”
通常用指针top来指示栈顶的位置,用指针bottom来指向栈底。栈顶指针top 反映了栈的状态不断地变化。在整个过程中,栈底指针不变,入栈和出栈操作均 有栈顶指针的变化来操作。
栈结构的例子:子弹匣 栈的根本运算有3种:入栈,退栈,读栈顶元素 栈和一般线性表的实现方法类似,通常也可以采用顺序方式和链接方式来实现。
栈支持子程序调用。
(2)队列及其根本运算
队列的定义 队列是指允许在一端进行插入,而在另一端进行删除的线性表。允许插入的一端 称为队头(或排头),允许插入运算的一端称为队尾。
队列的修改原那么与栈相反《先进先出”或“后进后出”
队列的运算
可以用顺序存储的线性表来表示队列,为了指示当前执行退队运算的队头位置, 需要一个队头指针(排头指针)front ,为了指示当前执行入队运算的队尾指针位 置,需要一个队尾指针rearo队头指针f「ont总是指向对头元素的前一个位置, 而队尾指针rear总是指向队尾元素,队尾指针rear和队头指针front共同反映 了队列中元素动态变化的情况。
循环列队 在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑 上的环状空间,供队列循环使用。
在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针指向排头 元素的前一个位置。因此,从队头
文档评论(0)