- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
透彻理解基本理论 突破《数据结构》重点难点
从数据结构研究的内容来看,数据结构包括数据的逻辑结构、数据的存储结构、数据的运算三部分,这三部分内容构成了《数据结构》的主体知识框架,亦是《数据结构》课程的三条主线。本文试图从这三要素分析其重点难点,以期对考生有所帮助。
一、透彻理解数据结构核心概念,从全局把握课程整体知识脉络
逻辑结构是数据元素之间固有的逻辑关系的整体。是针对具体问题抽象出来的数据模型,与计算机无关;而存储结构(又称物理结构),是数据及其逻辑结构在计算机中的表示(映像),存储必须依赖于计算机。最常见的逻辑结构有三种:(1)线性结构;数据元素之间是“一个跟一个”的线性关系,也称为“前(驱)后(继)关系”。(2)树型结构;数据元素之间是“一对多”关系,也称为层次结构(或“父子关系”、“上下级关系”)。(3)图结构;数据元素之间是“多对多”关系。从数学上看,树型结构和图结构的基本区别就是“每个结点是否仅仅从属一个直接上级”。而线性结构和树型结构的基本区别是“每个结点是否仅仅有一个直接后继”。存储结构实质上是内存分配,存储两方面内容:数据元素的存储以及数据元素关系的存储(尤为重要)。最常见的存储结构有顺序存储结构存储结构一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构,其数据处理的效率往往是不同的。O”符号表示法。求解某程序段的时间复杂度的一般步骤为:(1)找基本语句(通常是最内层循环的循环体);(2)计算执行次数,即建立执行次数求和表达式;(3)计算执行次数的数量级,并用大O符号表示。
二、按照逻辑结构-存储结构-运算实现流程学习表、树、图三种数据结构
1.一般线性表
线性表是最简单也是最常见的数据结构,是学习其他数据结构的基础。该章重点是顺序表和单链表上实现各种基本,难点是线性表相关应用问题设计算法解决。存储存储
依次存放 ;
逻辑关系由元素的存储位置来(隐式地)表示;
通常用一维数组实现; 任意存储单元存放数据元素-逻辑次序与物理次序不同-数据元素之间关系通过指针(显式地)表示-数据元素不能单独存储,需和指针共同存储在结点中;
重点理解头指针、尾标志、头结点的作用 可结合存储示意图理解 查找 随机存取结构;Loc(ai)=Loc(a1) + (i -1)×c 顺序存取结构;
核心操作(关键操作):工作指针后移
代码一般设计模式:(见教材P23)
p=head;
while(p-next...)
{ p=p-next;
…} 该模式常使用,须重点掌握 插入 插入前:(a1, … , ai-1, ai, … , an)
插入后:(a1, … , ai-1, x , ai, … , an) 存储位置要反映逻辑关系的变化:需移动元素
任意插入位置i(1≤i≤n+1)移动元素个数为 n-i+1 找到合适位置后,只需修改2个指针,注意指针勾链的顺序(见教材P24):
s-next=p-next;
p-next=s; 结合具体实例图示,二者对比学习 删除 删除前:(a1, …, ai-1,ai,ai+1,…,an)
删除后:(a1,…,ai-1,ai+1, …,an) 同上需移动元素,任意删除位置i(1≤i≤n)移动元素个数为 n-i
只需修改指针,注意摘链前暂存被删结点地址(见教材P25):
r=p-next;
p-next=r-next;
free(r); 适用场合 基于空间考虑 属静态分配,适于 预知线性表大致长度 属动态分配,适于元素个数变化较大或未知 基于时间考虑 频繁查找; 频繁插入和删除
常见链表类型还有循环链表、双链表,注意二者的特点以及操作实现与单链表的不同,比如双链表插入结点时要修改四个指针, 注意总结指针勾链先后顺序的规律。
2.特殊线性表
由于栈和队列是操作受限的特殊线性表,其操作是对线性表操作的简化,因此实现更简单,只要掌握好线性表的内容,类比理解掌握栈和队列便游刃有余,由此也看出线性表一章的基础性和重要性。与线性表一章相同重点是基本运算的实现,而难点在于循环队列边界条件处理(栈顶Top)(进栈)(退栈)
一维数组存放元素;
整数top指示栈顶
初始top=-1; 没有附加头结点Top为结点型指针
初始top= NULL Push(S,x)上溢现象S->top加1将新结点*p插入链栈头部Pop(S)下溢现象S->top减1将栈顶结点从链上摘下假上溢循环队列加1操作利用模运算 i=(i+1)%QueueSize;边界条件处理增加尾指针便于表尾插入EnQueue(Q,x) Q-rear=(Q-rear+1)%QueueSize;Q-rear-next=p;??//链队尾???Q-rear=p;// 指向新尾DeQueue(Q) Q-
您可能关注的文档
最近下载
- 小儿肛管排气.pptx VIP
- 新解读《GB_T 5271.9 - 2001信息技术 词汇 第9部分_数据通信》最新解读.docx VIP
- 新解读《GB_T 18492-2001信息技术 系统及软件完整性级别》最新解读.docx VIP
- PPT灌肠操作及并发症处理.pptx VIP
- 基于ABAQUS的橡胶材料粘弹性特性仿真.docx VIP
- 肠套叠护理PPT课件讲解PPT课件.pptx VIP
- 《带式输送机概述》PPT课件.pptx
- 1 “钓鱼”游戏(课件)一年级上册科学人教鄂教版2025.ppt
- 山东理工大学2021-2022学年《Python程序设计》期末考试试卷(A卷)及标准答案.docx
- 短视频拍摄与剪辑技巧课件.pptx VIP
文档评论(0)