数据结构笔记

上传人:壹****1 文档编号:497994789 上传时间:2022-08-21 格式:DOC 页数:22 大小:65.50KB
返回 下载 相关 举报
数据结构笔记_第1页
第1页 / 共22页
数据结构笔记_第2页
第2页 / 共22页
数据结构笔记_第3页
第3页 / 共22页
数据结构笔记_第4页
第4页 / 共22页
数据结构笔记_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数据结构笔记》由会员分享,可在线阅读,更多相关《数据结构笔记(22页珍藏版)》请在金锄头文库上搜索。

1、内容太多。我就把文字直接COPY过来吧!大家要的话可以直接COPY到你电脑上。 数据结构笔记参考资料来源:严蔚敏数据结构教材及题集全真题解数据结构分册北邮数据结构考研指导算法设计与分析(研究生教材)算法与数据结构(研究生教材)众网友来信及讨论从其它途径收集的历年真题以严的教材及题集为主,其它参考资料为辅!数据结构笔记主要内容:基础知识:基本问题问答(概念)算法分析:教材典型例题算法思路简述算法设计:严题集一题多解,典型题详细分析重点题分析:严每章题集已经考题,相似题数据结构笔记特点:实用,详细,易于理解(用通俗语言描述复杂问题),针对性强,覆盖面广,定期公布,题目累加!center第一章绪论/

2、center一、基本问题问答:1、什么叫数据结构?如何理解“数据结构”?如何树立数据结构的学习体系?广义上的数据结构指的是:逻辑结构和物理结构。狭义上的数据结构专指逻辑结构,就是元素间的逻辑关系,主要类型有:集合型,线性结构,树型,图型!整个数据结构的课程就是围绕着以上几种数据类型展开的,加上基于这些结构的基本操作:插入,删除,查找,取元素,取长度等等。另外,还有基于这些数据结构的较为复杂的算法:查找和排序。在严老师和其他很多的数据结构教材中都把查找和排序作为了一个独立的部分,这一部分实际上主要在探讨算法,而不在是结构本身了。算法的概念将在后面提到。2、数据的物理结构和逻辑结构定义数据结构,当

3、计算机程序运行时,程序就按照定义给这些数据分配了空间。而数据定义,是在定义其逻辑结构。以链表为列,在实际定义时,一个个的结点,由于其指针域可以指向另一个结点,那么依靠这种指向关系,就可在逻辑上建立起一条链状结构!但是,在实际的程序执行时,是不会有这样的一条链的,而是通过在一个结点空间的某个空间内填入了下一个结点的地址!这样的每个有数据和地址的结点,才是其物理结构。3、算法的概念、分析,算法时间复杂度的含义及分析算法就是解决问题的方法或策略。一个算法好与坏的评价标准是:正确,可读,健壮,效率高,空间省!设计算法时,应该按照严教材上关于类C(或类P)语言的描述来作,格式为:status fun_n

4、ame/算法说明for . ;/典型功能及复杂语句后加注释/fun_name注意写好注释!不求多,但求精!时间复杂度:分析算法效率的重要工具。主要是靠推算语句执行次频度而得来的。时间复杂度考查的是“某数量级”的概念,即:T(n)=O(f(n)中,存在正的常数C和n0,使得当n=n0时,0=T(N)=C*F(N)当空间复杂度为O(1)时,称算法为就地工作(原地工作)。算法时间复杂度的分析:时间复杂度的分析说到底是分析当系统规模增大时,系统所耗费时间的数量级。数量级的定义见上。简而言之,2n2,6n2,n2是同一数量级,因为由n2可推出其它两个(常数相乘)。此外,当时间复杂度的公式中出现n的多项式

5、时,应该以高阶为准。因为此时影响总体变化规律的是高阶项的值。在分析时间复杂度时,应该以程序或算法中执行次数最多的语句为准,通常情况下是最内层循环的时间复杂茺,最内层语句的执行次数计算出来后,取最高的次数,然后去掉该项中的常数因子即可。空间复杂度的度量主要是看当系统规模n增大时,系统所占用的额外空间是否也在增大,按怎么的规律增大。如果没有增大,即额外空间始终是个常数,算法就是原地工作!4、算法设计规范1在算法设计中,第一个牵涉到的概念是:算法说明。它是写在过程或函数首部以下的注释内容。虽是注释内容,却是必不可少的。在测试中也占有相当大的作用。此说明主要包括:算法的功能,参数表中各参数的含义及输入

6、输出定义;算法中引用了哪些全局变量或外部定义的变量,它们的作用,入口初值,以及应该满足哪些限制条件。如:链表是否带头结点,表中元素是否有序,如果有序是递增还是递减等等!必要时,算法说明还可用来陈述算法思想,采用的存储结构等。递归算法的说明特别重要,读者应该力求将它写为算法的严格定义。几个例子:2.29procedure DifferenceSqlist(VAR a;Sqlist;b,c:Sqlist);删去增序顺序表中那些既在增序顺序表中B出现又在增序顺序表C中出现的元素2.33procedure Sqlistlinkedlist(VAR lc,ld,lo:LinkedList;ll:Link

7、edList);将线性表ll分割为3个循环链表lc,ld和lo,其中每个循环链表只含一类字符,分别为A.Z、0.9和其它字符。2注释与断言在难懂的语句和关键的语句(段)之后加以注释可以大大提高程序的可读性。注释要恰当,并非越多越好;此外,注释句的抽象程度应略高于语句(段)。断言是注释的一种特殊写法,它是一个逻辑谓词,陈述算法执行到此点时应满足的条件,即这种形式:当、时,、。最重要的就是算法的入口断言与else分支断言。如果算法不含有参数佥性检测的代码段,书写入口断言是最低限度的要求。3输入、输出三种方式:a、通过专门的输入/出语句:read,write,scanf,printf等b、通过参数表

8、中的参数传递c、通过全局及外部变量4错误处理三种处理方式:a、error语句实现b、通过函数返回错误代码或错误状态值c、exit语句实现提倡使用第二种方式来实现错误处理5语句的使用与算法结构避免使用goto语句,算法结构结构应该同层次对齐,下一层向上一层缩进两格,并以适当的符号标识语句段的开始与结束:, 6基本运算未明确要求的,不得直接用教科书上的基本运算非用不可的,要将这些基本运算的代码全部写出7几点建议a、建议以图说明算法b、建议在算法书写完毕后,用边界条件的值验证一下算法能否正确执行5、类P与类C大比拼许多朋友问我类P与类C有啥区别,哪个更好?考试的时候用哪个语言?其实,这些都是一些很基

9、础的问题,不客气地说这是考研门外汉的问题。类P较类C的教材版本出得早,在后期的类C版数据中省去了类P中的一些内容,比如:栈一章的递归到非递归的转化等。但并不能因此就说类C版要差,事实上,类C的更符合当前考试和应用的发展趋势,从整体认同度而言,个人建议还是用类C好一点,原因:一,C语言本身很灵活,程序简洁,是真正的程序员用的语言,更是一个计算机研究生必须掌握的;二,C语言本身在实际项目的应用中是一种通用语言,软件公司绝大多数是要精通VC的,学好C的DS其意义更深远一些。另外,考虑到考上后绝大多数研友都会被导师拉去作项目,而作项目时多用的也是C!三,就交流范围而言,现在计算机版里用C的人要多得多,

10、所以,交流的机会应该要多一些,这样提高的也快些。四,其它原因。至于考试的时候用哪一个,应该以报考学校的要求为准,如果没有作要求的,请参照一下该校给出的历年题的标准答案是用哪种语言。当然,一般情况下,用两种语言都行,只要算法正确,就会得分。下面,罗列一下类C与类P的不同:类P类C类型定义TYPE、RECORD、ENDTYPEDEF、常量定义CONSTDEFINE函数定义PROC(或FUNC)名(参数) STATUS(VOID)名(参数);语句段、条件语句IF、THEN、ELSEIF()、ELSE、赋值语句:比较运算多分支语句CASE变量名OFSWITCH(表达式)(只写一种)值1:、 CASE值

11、1:、;BREAK;、ELSE语句DEFAULT:语句N1ENDC;循环语句WHILE条件DO、 WHILE条件、REPEAT、UNTIL() DO、WHILE()FOR(初值)TO(终值)DO语句FOR(初值;条件;表达式)语句出错处理ERROR(错误)EXIT(出错代码)输入/出 READ,WRITESCANF,PRINTF注释 /基本函数MAX,MIN,ABS,EOF,EOLN,上下取整上下取整分别为FLOOR,CEIL逻辑运算AND,OR,NOT,CAND,COR,!注:以上不同之处在具体算法中的体现,请参照教材P版P25页和C版P24页的对应算法。二、本章习题集中常考及已考题1.1相

12、同1.2相同1.3相似1.4无1.5相似1.6相似1.7相似1.8相似1.9相似1.10相同1.11相似(时间复杂度的比较)1.12相似(时间复杂度的比较)1.13无1.14相似于1.101.15无三、本章例题及习题分析由于本章较为简单,此部分省略。数据结构序言在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 能够熟练地选择和设计各种数据结构和算法。 至少要能够熟练地掌握一门程序设计语言。 熟知所涉及的相关应用领域的知识。 其中,后两个条件比较容易实现,而第一个条件则需要花相当的时间和精力才能够达到,它是区分一个程序设计人员水平高低的一个重要标志,数据结构贯穿程序设计的始终,缺乏数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号