数据结构知识点总结(详细无题目).docVIP

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

数据结构知识点总结 内容概要: 基本概念——线性表——栈与队列——树与二叉树——图——查找算法——排序算法 基本概念 1、数据元素是数据的基本单位。 2、数据项是数据不可分割的最小单位。 3、数据结构的 逻辑结构(抽象的,与实现无关) 物理结构(存储结构) 顺序映像(顺序存储结构)位置“相邻” 非顺序映像(链式存储结构)指针表示关系 4、算法特性:算法具有正确性、有穷性,确定性,(可行性)、输入,输出 正确性:能按设计要求解决具体问题,并得到正确的结果。 有穷性:任何一条指令都只能执行有限次,即算法必须在执行有限步后结束。 确定性:算法中每条指令的含义必须明确,不允许由二义性 可行性:算法中待执行的操作都十分基本,算法应该在有限时间内执行完毕。 输入:一个算法的输入可以包含零个或多个数据。 输出:算法有一个或多个输出 5、算法设计的要求: (1)正 确 性:算法应能满足设定的功能和要求 。 (2)可 读 性:思路清晰、层次分明、易读易懂 。 (3)健 壮 性:输入非法数据时应能作适当的反应和处理。 (4)高 效 性(时间复杂度):解决问题时间越短,算法的效率就越高。 (5)低存储量(空间复杂度):完成同一功能,占用存储空间应尽可能少。 线性表 1、线性表 List:最常用且最简单的数据结构。 含有大量记录的线性表称为文件。 2、线性表是n个数据元素的有限序列。 线性结构的特点: ①“第一个” ②“最后一个” ③前驱 ④后继。 3、顺序表——线性表的顺序存储结构 特点 a) 逻辑上相邻的元素在物理位置上相邻。 b) 随机访问。 typedef struct{ DataType elem[MAXSIZE]; int length; } SqList; 表长为n时,线性表进行插入和删除操作的时间复杂度为O(n)‘ 插入一个元素时大约移动表中的一半元素。 删除一个元素时大约移动表中的(n-1)\2 4、线性表的链式存储结构 类型定义 简而言之,“数据 + 指针”。 typedef struct LNode { DataType data; struct LNode *next; } LNode, *LinkList; 不带头结点的空表判定为 L= =null 带头结点的空表判定为 L-next= =null 循环单链表为空的判定条件为 L.next= =L 线性链表的最后一个结点的指针为NULL 头结点的数据域为空,指针域指向第一个元素的指针。 5、顺序表和单链表的比较 顺序表 单链表 以地址相邻表示关系 用指针表示关系 随机访问,取元素O(1) 顺序访问,取元素O(n) 插入、删除需要移动元素O(n) 插入、删除不用移动元素O(n)(用于查找位置) 6、顺序存储:优点:存储密度大,可随机存储 缺点:大小固定;不利于增减节点;存储空间不能充分利用;容量难扩充 链式存储:优点:易于插入删除;可动态申请空间;表容量仅受内存空间限制 缺点:增加了存储空间的开销;不可以随机存储元素 栈与队列 1、栈 栈:限定仅在表尾进行插入或删除操作的线性表。 栈顶:表尾端 栈底:表头 栈是先进后出的线性表。 插入栈顶元素称为入栈,删除栈顶元素称为出栈。 2、栈分为链栈和顺序栈 ·链栈 用不带头结点的单链表实现。 ·顺序栈 类似于顺序表,插入和删除操作固定于表尾。 3、队列 先进先出的线性表。 队尾入队 对头出队 允许插入的一端叫做队尾 允许删除的一端叫做对头 4、链队列 · 5、 循环队列 typedef struct { DataType elem[MAXSIZE]; int front, rear; // 队头、队尾位置 } SqQueue; ·循环队列判断队空的条件为 front=rear 循环队列判断队满的条件为 (rear+1)%m=front 在一个循环队列中删除元素时,首先需要后移队首指针。 6、栈与队列比较:都是线形结构,栈的操作LIFO(后进先出),队列操作FIFO(先进先出)。 树和二叉树 树的定义 树(Tree):是 n(n≥0)个有限数据元素的集合。 在任意一棵非空树T中: (1)有且仅有一个特定的称为树根(Root)的结点,根结点无前趋结点; (2)当n1时,除根结点之外的其余结点被分成m(m0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤ i ≤m)本身又是一棵树,并且称为根的子树。 基本术语: 结点的度数:结点的非空子树(即后缀)个数叫作结点的度数 树叶、分支结点:左(右)子树均为空二叉树的结点称作树叶否则称作

文档评论(0)

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

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

1亿VIP精品文档

相关文档