- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 数据结构与算法
算法 是一组有穷的指令集,通俗地说就是计算机解题的过程。
算法有四个基本特征:确定性、有穷性、可行性、拥有足够的情报。
算法的组成要素:对数据对象的运算和操作(算术运算、逻辑运算、关系运算、数据传输操作)、控制结构(算法一般由顺序、选择、循环三种基本结构组合而成)。
算法的复杂度(复杂度的高低体现在运行该算法时所需占用计算机资源的多少):算法的时间复杂度是指执行算法所需要的计算工作量,即基本运算次数;算法的空间复杂度是指执行算法所需要的内存空间。
数据结构是指相互有关联的数据元素的集合。前后件关系是数据元素之间最基本的关系。
依据视点不同,数据结构可以分为数据的逻辑结构(它是面向问题的,与所使用的计算机无关)和存储结构(也称物理结构,它是面向计算机的,是数据的逻辑结构在计算机中的表示)。
依据数据元素之间的关系,数据结构一般分为线性结构和非线性结构。
线性结构(也称线性表):非空的数据结构、有且只有一个根结点、每一个结点最多有一个前件(也最多有一个后件)。
线性表的顺序存储结构的特点是逻辑关系相邻的结点物理位置上也相邻。
链表的优点是在进行插入和删除运算时,只需要改变指针即可,不需要移动元素,当存储空间不足时,可以动态为其分配内存空间,所以不必估计存储空间的大小。顺序表可以随机访问任意一个结点,而链表必须从第一个数据结点出发,逐一查找每个结点。
顺序存储结构的插入运算:在顺序表第i个位置上插入一个值,就要先把第i个元素(包括i)之后的所有元素依次向后移动一个位置,然后再插入,最后长度加1.
顺序存储结构的删除运算:要删除第i个表项,则必须把第i个元素(不包括i)之后的所有元素依次向前移动一个位置,把第i个表项覆盖掉,最后长度减1.
栈是一种后进先出(先进后出)的线性表,具有记忆功能。
栈的基本运算有:入栈,出栈(删除栈顶元素),初始化、置空、判断栈是否为空或满、提取栈顶元素等,对栈的操作都是在栈顶进行的。
列队只允许在表的一端插入(队尾),而在另一端删除(队头),是一种先进先出(后进后出)的线性表。
栈和队列的共同点:都是操作受限的线性表,只允许在表的端点处进行操作。
树 (非线性结构)对于任意的一棵非空树都具有两个特性:有且只有一个根结点;当n(结点)1时,除根结点外的其余结点可分为m(m0)个互不相交的有限集。
结点的度:结点所拥有的子树棵数。度为0的结点为叶子结点。
树的度:树中所有结点的度的最大值。树的深度则为所处层次最大的那个结点的层次。
总结点数=总度数+1(一棵树中每个结点的度树之和与边的条数相等)
二叉树的基本性质:在二叉树的第k层上,最多有2的k-1次方个结点;深度为m的二叉树最多有2的m次方-1个结点;任意二叉树中,度为0的结点(叶子结点)总比度为2的结点多一个;具有n个结点的二叉树,其深度不小于[log2n]+1 (“[]”取整)
满二叉树就是每一层上的所有结点数都到达最大值;
完全二叉树:具有n个结点的完全二叉树的深度为[log以2为底n的对数]+1;完全二叉树中度为1的结点数为0或1;
二叉树的编历 如果二叉树为空,则执行空操作;
前序遍历:访问根结点,前序遍历左子树,前序遍历右子树
中序遍历:中序遍历左子树,访问根结点,中序遍历右子树
后序遍历:后序遍历左子树,后序遍历右子树,访问根结点。(层层分左右根)
顺序查找,从表的一端开始,依次扫描表中的元素,若查找失败则返回-1(失败时元素的位置),在一个有n个元素的线性表中进行顺序查找,则查找成功时的平均比较次数为(n+1)/2次,最坏的情况则是比较n次。
二分查找,先将线性表中的元素进行排序,然后再依次进行折中查找。(只用于顺序存储的有序表)
在长度为n的有序线性表中进行二分查找,需要的比较次数为log,最坏情况下需要比较的次数是O(log)
冒泡排序,在最坏情况下需要比较n(n-1)/2次,时间复杂度为O(n(n-1)/2)(冒泡排序需要经过n-1趟排序),(简单插入排序、快速排序也一样)。
希尔排序,在最坏情况下需要比较O()次。
堆排序,在最坏情况下需要比较nlog次。
第二章 程序设计基础
程序设计的主导风格“清晰第一,效率第二”
程序设计的方法主要有两种:结构化程序设计和面向对象程序设计
结构化程序设计必须遵循的原则:模块化(以模块化设计为中心)、自顶向下、逐步求精、限制使用goto语句。
结构化程序的基本结构:顺序结构、选择结构(分支结构)、循环结构(重复结构)。
面向对象方法的基本概念有:对象是其最基本的概念,对象具有5个基本特点:标识唯一性、分类性、多态性、封装性(实现信息隐蔽)、模块独立性(与信息隐蔽的概念直接相关)好。类和实例,类的实例称为对象(对象是类的实例),类描述的是具有相似性质的
您可能关注的文档
- 课设说明书(1).doc
- 课堂从设计开始精彩.doc
- 课堂教学技能1.doc
- 课堂讨论题.doc
- 课题Excel复习课教案(二).doc
- 空间数据分析概述.doc
- 空间数据建库的大致过程.doc
- 空间数据结构基础.doc
- 空间数据结构基础实验指导书(2009-2010学年度).doc
- 控制基础实验指导书.doc
- 2023年黑龙江省哈尔滨市道里区新华街道招聘社区工作者真题及参考答案详解1套.docx
- 2023年黑龙江省大庆市肇州县永胜乡招聘社区工作者真题含答案详解.docx
- 2023年黑龙江省牡丹江市海林市新安朝鲜族镇招聘社区工作者真题及参考答案详解.docx
- 2023年黑龙江省哈尔滨市松北区万宝街道招聘社区工作者真题及答案详解1套.docx
- 2023年黑龙江省哈尔滨市道外区新乐街道招聘社区工作者真题含答案详解.docx
- 2023年黑龙江省绥化市北林区吉泰招聘社区工作者真题参考答案详解.docx
- 2023年黑龙江省哈尔滨市香坊区建筑街道招聘社区工作者真题附答案详解.docx
- 2023年黑龙江省哈尔滨市道外区民主乡招聘社区工作者真题附答案详解.docx
- 2023年黑龙江省牡丹江市海林市二道镇招聘社区工作者真题含答案详解.docx
- 2023年黑龙江省大庆市萨尔图区铁人街道招聘社区工作者真题及参考答案详解一套.docx
文档评论(0)