ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:124.07KB ,
资源ID:1966339      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1966339.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(专业课数据结构考研知识点总结.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

专业课数据结构考研知识点总结.docx

1、专业课数据结构考研知识点总结专业课数据结构考研知识点总结数据结构考研真题及知识点解析 考察目标 1. 掌握数据结构的基本概念、基本原理和基本方法。 2. 掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度与空间复杂度的分析。 3. 能够运用数据结构的基本原理和方法进行问题的分析与求解;具备采用C、C+或Java语言设计与实现算法的能力。 第2章 线性表 一、考研知识点 (一)线性表的定义和基本操作 (二)线性表的实现 1.顺序存储 2.链式存储 3.线性表的应用 二、考查重点 1(线性结构的特点; 2(线性表在顺序存储及链式存储方式下的基本操作及其应用; 3(线性表的

2、顺序存储及链式存储情况下,其不同和优缺点比较,及其各自适用的场合。单链表中设置头指针、循环链表中设置尾指针而不设置头指针的各自好处; 4(能分析所写算法的时间和空间复杂度。 分析: 线性表是一种最简单的数据结构,在线性表方面,主要考查线性表的定义和基本操作、线性表的实现。在线性表实现方面,要掌握的是线性表的存储结构,包括顺序存储结构和链式存储结构,特别是链式存储结构,是考查的重点。另外,还要掌握线性表的基本应用。 线性表一章在线性结构的学习乃至整个数据结构学科的学习中,其作用都是不可低估的。线性表一章小的知识点比较少,一般会出一个综合题,并且容易和第三章、第九章和第十章的内容结合来考,注意对基

3、本知识的理解,能够利用书上的理论解决具体问题。学习过程中要注意多积累,多看、多写一些相关算法。 三、考研真题 (一)选择题 近几年第2章没有考选择题,只有两个计算时间复杂度的题目,因为此章主要是线性表的操作,而且又是这门课的一个基础,考综合题的可能性比较大,可以和第3章、第9章和第10章的内容结合来出题。 1(11年)设n是描述问题规模的非负整数,下面程序片段的时间复杂度是( A )。 x=2; while(x=0)的阶乘的算法如下,其时间复杂度是( B )。 int fact(int n) if(nk时,指针p随着每次遍历,也向前移动一个结点。当遍历完成时,p或者指向表头结点,或者指向链表中

4、倒数第k个位置上的结点。 (3)算法描述: nt locate(Linklist list, int k) i p1=list-link; p=list; i=1; while(p1) p1=p1-link; i+; if(ik)p=p-next; /如果ik,则p也后移 if(p=list)return 0; /链表没有k个结点 else printf(“%n”,p-data); return 1; 2.(10年)设将n(n,1)个整数存放到一维数组R中,试设计一个在时间和空间两方面尽可能有效的算法,将R中保有的序列循环左移P(0,P,n)个位置,即将R中的数据由(X0 X1 Xn-1)变换

5、为(Xp Xp+1 Xn-1 X0 X1 Xp-1)要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C+或JAVA语言表述算法,关键之处给出注释。 (3)说明你所设计算法的时间复杂度和空间复杂度 分析:此题考查的是数组的操作,线性表的顺序存储的核心就是数组,因此此题实质上是考查的线性表的顺序存储的操作及其应用。做此题时要考虑算法的时间和空间复杂度。 解法一: (1)算法的基本设计思想:可以将这个问题看做是把数组ab转化成数组ba(a代表数-1组的前p个元素,b代表数组中余下的n-p个元素),先将a逆置得到ab,再将b逆置得-1-1-1-1-1-1-1到ab,最后将整个ab逆

6、置得到(ab)=ba。设reverse函数执行将数组元素逆置的操作,对abcdefgh向左循环移动3(p=3)个位置的过程如下: reverse(0,p-1)得到cbadefgh; reverse(p,n-1)得到cbahgfde; reverse(0,n-1)得到defghabc。 注:reverse中,两个参数分别表示数组中待转换元素的始末位置。 (2)算法描述: void reverse(int R, int low, int high) /将数组中从low到high的元素逆置 int temp; for(i=0;i=1)的生序列S,处在第?L/2?个位置的数称为S的中位数,例如,若序列

7、S1=(11,13,15,17,19),则S1的中位数是15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现在有两个等长升序序列A和B,试设计一个在时间和空间方面都尽可能高效的算法,找出两个序列A和B的中位数。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C+或JAVA语言描述算法,关键之处给出注释。 分析:此题考查线性表的顺序存储,主要是线性表的基本操作的应用。做此题时要把握算法的效率。 (1)算法的基本设计思想如下: 分别求出序列A 和B的中位数,设为a和b,求序列A和B的中位数过程如下: 1

8、)若a=b,则a或b即为所求中位数,算法结束; 2)若ab,则舍弃序列A中较大的一半,同时舍弃序列B中较小的一半,要求舍弃的长度相等; 在保留的两个升序序列中,重复过程1)-3),直到两个序列中只含一个元素时为止,较小者即为所求的中位数。 (2)算法实现如下: int M_search(int A,int B.int n) int s1=0,d1=n-1,m1,s2=0,d2=n-1,m2; /分别表示序列A和B的首位数、末尾数和中位数 While(s1!=d1|s2!=d2) m1=(s1+d1)/2; m2=(s2+d2)/2; if(Am1=Bm2) return Am1; else if(Am1Bm2) if(s1+d1)%2=0 s1=m1;d2=m2; elses1=m1+1;d2=m2; else if(s1+d1)%2=0 d1=m1;s2=m2; elsed1=m1+1;s2=m2; return As1len2) long=str1-next; short=str2-next; k=len1-len2; else long=str2-next; short=str1-next; k=len2-len1; while(k) long=long-next; k-; while(long) if(long=short) return long; else

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1