数据的逻辑结构、存储结构以及各种基本 *** 作的实现等;严蔚敏,《数据结构及应用算法教程》。
考试目标是要求考生掌握C语言程序设计的基本概念、各种数据类型及基本程序设计方法,掌握各种数据结构的特点、存储表示、运算方法以及在计算机科学中最基本的应用,并具备选用合适的数据结构,利用C语言编写质量高、风格好的应用程序的能力。
合格考生应当达到全国普通高等院校计算机专业优秀本科毕业生的水平,具有较好的计算机理论基础。主要参考教材有:《数据结构及应用算法教程》(修订版) 严蔚敏、陈文博 清华大学出版社 2011-5-9 ;《C语言程序设计教程(第二版)》 王敬华 清华大学出版社 2009-8。
扩展资料:
考研要求规定:
1、中华人民共和国公民;拥护中国共产党的领导,品德良好,遵纪守法;身体健康状况符合国家和招生单位规定的体检要求。
2、国家承认学历的应届本科毕业生(含普通高校、成人高校、普通高校举办的成人高等学历教育应届本科毕业生)及自学ks和网络教育届时可毕业本科生,录取当年9月1日前须取得国家承认的本科毕业z书)。
3、获得国家承认的高职高专毕业学历后满2年(从毕业后到录取当年9月1日,下同)或2年以上,达到与大学本科毕业生同等学历,且符合招生单位根据本单位的培养目标对考生提出的具体业务要求的人员。
参考资料来源:华中师范大学-硕士研究生入学《数据结构与C语言程序设计》考试
数据结构,顾名思义,就是数据之间的结构关系,或者理解成数据元素相互之间存在的一种或多种特定关系的集合。数据结构分为 逻辑结构 和 物理结构 。
逻辑结构
指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后关系,而与他们在计算机中的存储位置无关。逻辑结构分为以下四类:
1 集合机构
2 线性结构
3 树形结构
4 图形结构
物理结构
物理结构又叫存储结构,指数据的逻辑结构在计算机存储空间的存放形式。通俗的讲,物理结构研究的是数据在 存储器 中存放的形式。 存储器主要针对于 内存 而言,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
数据在内存中的存储结构,也就是物理结构,分为两种: 顺序存储结构 和 链式存储结构 。
顺序存储结构和链式存储结构的区别
打个比方说一下顺序存储结构和链式存储结构的区别:
比如去银行取钱,顺序存储结构就相当于,所有的客户按照先来后到的顺序有序的的坐在大厅的椅子上(注意:是有顺序的坐着哦)。
而链式存储结构相当于,所有的客户只要一到银行,大堂经理就给他们每人一个号码,然后他们可以随便坐在哪个椅子上(随便坐,不需要按照什么顺序坐),只需要等待工作人员广播叫号即可。
而每个客户手里的号码就相当于指针,当前的指针指向下一个存储空间,这样,所有不连续的空间就可以被有顺序的按照线性连接在一起了。
说到数据结构,必须要一并带上算法,在笔者看来,不谈算法的数据结构只是你理解了概念,只能够出去装X而已。即谈数据结构又谈算法才能够真正装爷。只可惜,以我现在脑海里残留的一点概念,我出去只能够装X。废话少说,直接行干货!
算法的概念
是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
以上是我在百度百科找到的解释,在我看来,算法就是求解一个问题所需要的步骤所形成的解决方法,每一步包括一个或者多个 *** 作。无论是现实生活中还是计算机中,解决同一个问题的方法可能有很多种,在这N多种算法中,肯定存在一个执行效率最快的方法,那么这个方法就是 最优算法 。
算法的特性
算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。
输入
一个算法具有零个或者多个输出。以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。后面一句话翻译过来就是,如果一个算法本身给出了初始条件,那么可以没有输出。比如,打印一句话:NSLog(@"你最牛逼!")
输出
算法至少有一个输出。也就是说,算法一定要有输出。输出的形式可以是打印,也可以使返回一个值或者多个值等。也可以是显示某些提示。
有穷性
算法的执行步骤是有限的,算法的执行时间也是有限的。
确定性
算法的每个步骤都有确定的含义,不会出现二义性。
可行性
算法是可用的,也就是能够解决当前问题。
当然,回过头来一看,这五个特性都是废话,并且依稀记得大学老师都教过。所以,我们不用浪费脑力在这些不必要的概念上,因为大学早已离我远去,考试什么的跟我也没有一毛钱关系,只要知道这么回事就好。
算法的设计要求
要设计一个好的算法,需要考虑以下4个特性(其实多半是废话)。
正确性
废话,谁会设计一个不能够解决问题的方法。
可读性
指算法无论是从设计思路上,还是从注释方面,都要能够保证算法是可读的,也就是可以被其他人员能够读懂的。其实也是废话,这是一个优秀的程序员必备的。
健壮性
通俗的讲,一个好的算法应该具有捕获异常/处理异常的能力。另外,对于测试人员的压力测试、边界值测试等刁难的测试手段,算法应该能够轻松的扛过去。
时间效率高和存储量低
这其实是两个概念,时间效率就是指的时间复杂度,存储量就是指的空间复杂度。翻译过来就是一个好的算法应该考虑时间复杂度和空间复杂度。而往往时间复杂度和空间复杂度是相互弥补的。也就是从某些角度,我们可以了通过牺牲算法运算时间的方式来减少对内存的占用,反之亦然。
“算法+数据结构=程序”是一个著名的公式。程序运行的过程就是数据流的处理过程,怎么处理,那就是算法问题,数据怎么组织,那就是数据结构了。
程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。
扩展资料:
某种意义上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿爱达·勒芙蕾丝曾设计了巴贝奇分析机上计算伯努利数的一个程序。她甚至还创建了循环和子程序的概念。由于她在程序设计上的开创性工作,爱达·勒芙蕾丝被称为世界上第一位程序员。
任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。在计算机技术发展的早期,由于机器资源比较昂贵,程序的时间和空间代价往往是设计关心的主要因素;
随着硬件技术的飞速发展和软件规模的日益庞大,程序的结构、可维护性、复用性、可扩展性等因素日益重要。
另一方面,在计算机技术发展的早期,软件构造活动主要就是程序设计活动。但随着软件技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如 *** 作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的计算环境的一部分。
这种情况下软件构造活动的内容越来越丰富,不再只是纯粹的程序设计,还包括数据库设计、用户界面设计、接口设计、通信协议设计和复杂的系统配置过程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)