计算机二级公共基础.docx_第1页
计算机二级公共基础.docx_第2页
计算机二级公共基础.docx_第3页
计算机二级公共基础.docx_第4页
计算机二级公共基础.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 算法与数据结构1.1 算法l 定义:指解题方案的准确而完整的描述。(不等于程序,也不等于计算方法)l 基本特征 可行性确定性有穷性有限个步骤后终止(有限时间内终止)拥有足够的情报l 四种基本运算与操作:算术运算 逻辑运算 关系运算 数据传输l 三种基本控制结构:顺序结构 选择结构 循环结构l 基本设计方法 列举法 归纳法 逆推 逆归 减半递推技术 回溯法l 指令系统:一个计算机系统能执行所有指令的集合。l 复杂度 时间复杂度执行算法所需的计算工作量空间复杂度执行算法所需的内存空间l 一种逻辑结构可以有多种存储结构l 不同存储结构影响效率l 逻辑结构:对数据元素之间的逻辑关系的描述l 存储结构(物理结构):数据的逻辑结构在计算机存储空间中的存放形式1.2.1数据结构l 定义:相互关联的数据元素的集合l 研究的三个方面逻辑结构 一对多顺序存储结构链接索引等l 顺序存储方式主要用于线性的数据结构它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的相邻衔接关系来体现l 链式存储结构在每个节点中至少包含一个指针域,用指针来体现数据元素之间逻辑 上的联系1.2.2线性结构和非线性结构l 根据数据元素结构中的各数据元素之间前后件关系的复杂程度l 对于一个非空的数据结构 线性结构 有且只有一个根结点(线性表) 每个结点最多有一个前件,也最多有一个后件非线性结构:不是线性结构l 在一个线性结构中插入或删除任何一个结点后还是线性结构l 线性结构:栈、队列、串;循环队列、带链队列、带链栈l 非线性结构:数组、广义表、树(例二叉树)和图l 线性表是最简单的最常用的一种线性结构,线性链表指的是采用链式存储结构的线性表,栈和列是一种特殊的线性表,树是一种简单的非线性结构,二叉树是树的一种。l 线性与非线性是从数据的逻辑结构角度来讲,与该数据结构中含有多少个元素无关,即使是空的二叉树也是非线性结构l 有序线性表既可以采用顺序存储结构,又可以采用链式存储结构l 线性表的顺序存储结构具有以下两个基本特点:1) 线性表中所有元素所占的存储空间是连续的2) 线性表中各元素所占的存储空间中是按逻辑顺序依次存放的3) 元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k, ADR(a1)为第一个元素地址,k代表每个元素占的字节数l 顺序表的运算:查找、插入、删除3种1.3 栈 (先进后出)(后进先出)(子弹匣)l 限定在一端进行插入与删除的线性表(既可以顺序存储,又可以链式存储)l 栈顶允许插入与删除元素的一端l 栈底封闭的一端,栈底指针不变l 栈顶总是最先被删除的一端l 栈底总是最先被插入的一端l 栈的基本运算入栈栈顶插入退栈取栈顶元素并赋给一个指定变量读栈顶元素:将栈顶元素赋给一个指定的变量。l 栈具有记忆作用l 在栈中,栈底指针不变,栈中元素随栈顶指针变化而动态变化l 与栈结构关联:子程序的调用1.4队列(先进先出)(后进后出)(火车进隧道)l 只允许一段插入,另一端删除的顺序表(顺序存储)l 队头允许删除l 队尾允许插入l 队列运算入队插入元素退队删除元素l 与队列结构有关联: “先到先服务”的作业调度l 循环队列1) 定义:队列存储空间的最后一个位置绕到第一个位置形成逻辑上的环状空间,供队列循环使用2) 循环队列作为特殊的队列,也是线性结构3) 循环队列中,队尾指针既可以大于队头指针,也可以小于。4) 队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列5) 循环队列中的元素个数由队头指针和队尾指针共同决定6) 求循环队列中的元素个数?队尾指针(rear) 队头指针(front) m为队列容量入队(rear=rear+1) 退队(front=front+1)元素个数为 rear-front , rearfront ; rear-front+m , rear1,则该结点的父结点编号为INT(k/2)b) 若2kn,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)c) 若2k+1n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。l 二叉树的遍历1) 前序遍历先访问根结点,然后遍历左子树,最后遍历右子树;并且在遍历左、右子树时,仍需先访问根结点,然后遍历左子树,最后遍历右子树。2) 中序遍历先遍历左子树、然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。例如,对图1-1中的二叉树进行中序遍历的结果(或称为该二叉树的中序序列)3) 后序遍历先遍历左子树、然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。例如,对图1-1中的二叉树进行后序遍历的结果(或称为该二叉树的后序序列)1.7查找l 查找是指在一个给定的数据结构中查找某个指定的元素。从线性表的第一个元素开始,依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;若线性表中所有的元素都与被查找元素进行了比较但都不相等,则表示查找失败。l 顺序查找下列两种情况下也只能采用顺序查找:1) 如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用顺序查找2) 即使是有序线性表,如果采用链式存储结构,也只能用顺序查找“有序”是特指元素按非递减排列,即从小到大排列,但允许相邻元素相等。下一节排序中,有序的含义也是如此l 二分法查找(对分法或拆半查找)1) 顺序存储结构2) 线性表是有序表l 对于长度为n的有序线性表,利用二分法查找元素X的过程如下1) 步骤1:将X与线性表的中间项比较;2) 步骤2:如果X的值与中间项的值相等,则查找成功,结束查找;3) 步骤3:如果X小于中间项的值,则在线性表的前半部分以二分法继续查找;4) 步骤4:如果X大于中间项的值,则在线性表的后半部分以二分法继续查找。5) 步骤5:直到判断最后一个元素与被查找元素是否相等l 对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较n次。1.8 排序l 交换类排序法1) 冒泡法排序法在最坏的情况下,冒泡排序需要比较次数为n(n-1)/22) 快速排序法在最坏的情况下,冒泡排序需要比较次数为n(n-1)/2 快于冒泡法 l 插入类排序法1) 简单插入排序法,最坏情况需要n(n-1)/2次比较2) 希尔排序法,最坏情况需要O(n1.5)次比较l 选择类排序法1) 简单选择排序法,最坏情况需要n(n-1)/2次比较2) 堆排序法,最坏情况需要O(nlog2n)次比较l 相比以上几种(除希尔排序法外),堆排序法的时间复杂度最小第二章 程序设计基础l 结构化程序设计原则1) 自顶而下2) 逐步求精3) 模块化4) 限制使用goto语句l 程序设计方法与风格1) 源程序文档化a) 符号的命名b) 程序注释清晰第一,效率第二c) 视觉组织2) 数据说明的方法a) 次序应规范化b) 变量安排有序化c) 使用注释3) 语句的结构程序4) 输入和输出2.1程序设计的方法与风格2.2结构化程序设计l 结构化的基本结构1) 顺序结构:是最基本、最普通的结构形式,按照程序中的语句行的先后顺序逐条执行2) 选择(分支)结构:又称为分支结构,它包括简单选择和多分支选择结构3) 循环(重复)结构:根据给定的条件,判断是否要重复执行某一相同的或类似的程序段当型循环结构:先判断后执行的循环体称为当型循环结构直到型循环结构:先执行循环体后判断的称为直到型循环结构2.3面对对象方法l 面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素2.3.1对象l 属性描述对象的状态l 方法(服务)表示对象的行为,基于同一个类产生的两个对象是可以分别设置自己的属性值l 属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。属性值应该指的是纯粹的数据值,而不能指对象。l 操作描述了对象执行的功能,若通过信息的传递,还可以为其他对象使用。操作过程是被封装在对象中,用户看不到,称之为对象的封装l 对象的基本特点1) 标识唯一性2) 分类性3) 多态性4) 封装性5) 模块独立性l 面对对象设计方法的主要特征1) 封装性2) 继承性3) 多态性2.3.2类和实例l 类对一类具有相同的属性和方法对象的描述l 类是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例l 类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作2.3.3信息l 消息是实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流l 一个消息由三部分组成:接收消息的对象的名称、消息标识符(消息名)和零个或多个参数2.3.4继承l 广义地说,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论