数据结构小结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构小结

一、 ? 基本概念 ? 1、数据元素是数据的基本单位。 2、数据项是数据不可分割的最小单位。 3、数据结构的 ?逻辑结构(抽象的,与实现无关) ?物理结构(存储结构)顺序映像(顺序存储结构)位置“相邻”非顺序映像(链式存储结构)指针表示关系 ?4、算法特性:算法具有正确性、有穷性,确定性,(可行性)、输入,输出 正确性:能按设计要求解决具体问题,并得到正确的结果。 有穷性:任何一条指令都只能执行有限次,即算法必须在执行有限步后结束。 确定性:算法中每条指令的含义必须明确,不允许由二义性 可行性:算法中待执行的操作都十分基本,算法应该在有限时间内执行完毕。 输入:一个算法的输入可以包含零个或多个数据。?输出:算法有一个或多个输出?5、算法设计的要求:? 正??确?性:算法应能满足设定的功能和要求?。???? 可??读?性:思路清晰、层次分明、易读易懂?。? (3)健??壮?性:输入非法数据时应能作适当的反应和处理。???? (4)高??效?性(时间复杂度):解决问题时间越短,算法的效率就越高。?????? (5)低存储量(空间复杂度):完成同一功能,占用存储空间应尽可能少。 二、?线性表? 1、线性表?List:最常用且最简单的数据结构。?含有大量记录的线性表称为文件。? 2、线性表是n个数据元素的有限序列。? 线性结构的特点:?①“第一个”?②“最后一个”?③前驱?④后继。? 3、顺序表——线性表的顺序存储结构? 特点? ?逻辑上相邻的元素在物理位置上相邻。? b)?随机访问。? 2)?表长为n时,线性表进行插入和删除操作的时间复杂度为O(n),?插入一个元素时大约移动表中的一半元素,?删除一个元素时大约移动表中的(n-1)\2?。 4、线性表的链式存储结构? 1)?类型定义? 简而言之,“数据?+?指针” 2)?不带头结点的空表判定为?L=?=null? 带头结点的空表判定为??L-next=?=null? 循环单链表为空的判定条件为?L.next=?=L? 线性链表的最后一个结点的指针为NULL? 头结点的数据域为空,指针域指向第一个元素的指针。 顺序表和单链表的比较? 6、顺序存储:优点:存储密度大,可随机存储? ?????????? 缺点:大小固定;不利于增减节点;存储空间不能充分利用;容量难扩充? 链式存储:优点:易于插入删除;可动态申请空间;表容量仅受内存空间限制? ?????? 缺点:增加了存储空间的开销;不可以随机存储元素 ?栈与队列? 1、栈? 栈:限定仅在表尾进行插入或删除操作的线性表。? 栈顶:表尾端? 栈底:表头? 栈是先进后出的线性表。? 插入栈顶元素称为入栈,删除栈顶元素称为出栈。? 类似于顺序表,插入和删除操作固定于表尾。 3、队列? 先进先出的线性表。? 队尾入队?对头出队? 允许插入的一端叫做队尾? 允许删除的一端叫做对头 链队列 1.?树的定义? ???树(Tree):是?n(n≥0)个有限数据元素的集合。??????? 在任意一棵非空树T中:? ?????(1)有且仅有一个特定的称为树根(Root)的结点,根结点无前趋结点;?????? (2)当n1时,除根结点之外的其余结点被分成m(m0)个互不相交的集合T1,T2,?,Tm,其中每一个集合Ti(1≤?i?≤m)本身又是一棵树,并且称为根的子树。? 2.?基本术语:? 结点的度数:结点的非空子树(即后缀)个数叫作结点的度数? 树叶、分支结点:左(右)子树均为空二叉树的结点称作树叶否则称作分支结点。? 结点的层数:规定根的层数是0,其余结点的层数等于其父结点的层数加1?孩子和双亲:? 树的深度:? 树的度数:树中度数最大的结点度数叫作树的度数? 树林:是由零个或多个不相交的树所组成的集合。 3.?二叉树性质:? 1)?二叉树的第i层上至多有2i-1个结点。? 2)?深度为k的二叉树至多有2k-1个结点。?????? ?满二叉树:深度为k,有2k-1个结点。? 完全二叉树:给满二叉树的结点编号,从上至下,从左至右,n个结点的完全二叉树中结点在对应满二叉树中的编号正好是从1到n。? ?叶子结点n0,度为2的结点为n2,则n0?=?n2+1。? 考虑结点个数:n?=?n0?+?n1?+?n2 ?考虑分支个数:n-1?=?2n2?+?n1?可得n0?=?n2+1? 5.?遍历二叉树(先序DLR、中序LDR、后序LRD)方法与C语言描述? 由二叉树的递归定义可知,一棵二叉树由根结点(D)、根结点的左子树(L)和根结点的右子树(R)三部分组成。因此,只要依次遍历这三部分,就可以遍历整个二叉树。一般有三种方法:先序(前序)遍历DLR(根左右)、中序遍历LDR(左根右)、?后序遍历LRD(左右根)。? 7.

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档