数据结构学习、复习提纲.docxVIP

数据结构学习、复习提纲.docx

本文档由用户AI专业辅助创建,并经网站质量审核通过
  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.1数据结构的基本概念

*数据:信息的载体,是描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。

*数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

*数据项:构成数据元素的不可分割的最小单位。

*数据对象:具有相同性质的数据元素的集合,是数据的一个子集。

*数据结构:相互之间存在一种或多种特定关系的数据元素的集合。它包括数据的逻辑结构和数据的物理结构(存储结构)。

1.2数据的逻辑结构

*定义:数据元素之间的逻辑关系,独立于计算机。

*分类:

*线性结构:数据元素之间存在一对一的线性关系。如线性表、栈、队列。

*非线性结构:数据元素之间存在一对多或多对多的关系。如树、图。

1.3数据的物理结构(存储结构)

*定义:数据的逻辑结构在计算机中的表示(又称映像)。

*基本存储方法:

*顺序存储:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。

*链式存储:借助指示元素存储地址的指针(或引用)来表示数据元素之间的逻辑关系。

*索引存储:在存储元素信息的同时,建立附加的索引表。

*散列存储:根据元素的关键字直接计算出该元素的存储地址。

1.4数据类型与抽象数据类型

*数据类型:一个值的集合和定义在此集合上的一组操作的总称。

*抽象数据类型(ADT):指一个数学模型以及定义在该模型上的一组操作。它强调数据的逻辑结构和操作,而不关心其在计算机内部的具体表示和实现。

1.5算法的基本概念

*定义:对特定问题求解步骤的一种描述,它是指令的有限序列。

*特性:有穷性、确定性、可行性、输入、输出。

*算法设计的要求:正确性、可读性、健壮性、高效率与低存储量需求。

1.6算法效率的度量

*时间复杂度:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。通常使用大O符号表示,关注最坏情况下的时间复杂度。

*空间复杂度:算法所需存储空间的度量,也是问题规模n的函数。

二、线性表

2.1线性表的定义和逻辑结构

*定义:由n(n≥0)个具有相同特性的数据元素构成的有限序列。

*逻辑结构:数据元素之间呈一对一的线性关系。

2.2线性表的基本操作

*初始化、销毁、判空、求长度、获取元素、查找元素、插入元素、删除元素、遍历等。

2.3线性表的顺序存储结构(顺序表)

*定义:用一组地址连续的存储单元依次存储线性表的数据元素。

*特点:随机存取、存储密度高、插入删除操作需要移动大量元素。

*实现:数组。

*基本操作的实现及性能分析:插入、删除、查找等操作的时间复杂度分析。

2.4线性表的链式存储结构(链表)

*特点:不要求连续存储、插入删除操作方便(无需移动元素)、不能随机存取、需额外空间存储指针。

*单链表:节点包含数据域和一个指针域(指向下一个节点)。

*头指针与头节点的区别。

*基本操作的实现:创建、插入(头插法、尾插法、指定位置插入)、删除、查找、遍历、求长度等。

*双链表:节点包含数据域和两个指针域(分别指向前一个和后一个节点)。

*基本操作的实现:插入、删除。

*循环链表:首尾相接的链表(单循环链表、双循环链表)。

*静态链表:用数组模拟链表,数组元素包含数据域和游标(代替指针)。

2.5顺序表与链表的比较及应用场景

*基于空间:顺序表需要预分配空间,可能存在浪费或溢出;链表动态分配,空间利用率高。

*基于时间:顺序表随机访问快,插入删除在中间位置效率低;链表插入删除在已知前驱时效率高,访问效率低。

*应用选择:根据实际需求(查找频繁还是插入删除频繁,空间限制等)选择。

2.6线性表的应用

*合并两个有序线性表、线性表的逆置、删除重复元素等。

三、栈与队列

3.1栈的定义和逻辑结构

*定义:只允许在表的一端进行插入和删除操作的线性表(后进先出LIFO)。

*栈顶与栈底:允许操作的一端称为栈顶,另一端称为栈底。

*基本操作:初始化、判空、入栈、出栈、取栈顶元素等。

3.2栈的顺序存储结构(顺序栈)

*实现:数组,设置栈顶指针。

*基本操作的实现:入栈、出栈等(注意栈满和栈空的判断)。

*共享栈:两个栈共享一个数组空间,提高空间利用率。

3.3栈的链式存储结构(链栈)

*实现:链表,通常以头节点作为栈顶。

*基本操作的实现:入栈、出栈等。

3.4栈的应用

*表达式求值(中缀表达式转后缀表达式、后缀表达式求值)。

*

文档评论(0)

小女子 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档