好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

二级公共基础知识总结.doc

10页
  • 卖家[上传人]:工****
  • 文档编号:482778839
  • 上传时间:2023-03-07
  • 文档格式:DOC
  • 文档大小:223KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 二级公共基础知识总结 (30 分: 10 选择 +5 填空 )第一章 数据结构与算法一. 算法1. 概念:是解题方案的准确而完整的描述算法不等于程序,也不等于计算方法2. 基本特征:( 1 )确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;( 2 )有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;( 3 )可行性,算法原则上能够精确地执行;( 4 )拥有足够的情报3. 基本要素: 一是对数据对象的运算和操作;二是算法的控制结构4. 指令系统: 一个计算机系统能执行的所有指令的集合5. 基本运算和操作包括: 算术运算、逻辑运算、关系运算、数据传输6. 基本控制结构: 顺序结构、选择结构、循环结构7. 基本设计方法: 列举法、归纳法、递推、递归、减半递推技术、回溯法8. 算法复杂度(算法效率的度量)( 1 )算法时间复杂度:指执行算法所需要的计算工作量即算法执行过程中所需要的基本运算次数通常,一个算法所用的时间包括编译时间和运行时间 2 )算法空间复杂度:指执行这个算法所需要的内存空间包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间。

      二. 数据结构1. 数据的基本单位 是数据元素2. 数据结构: 指相互有关联的数据元素的集合3. 数据的存储结构 (也称数据物理结构) :数据的逻辑结构在计算机存储空间中的存放形式4. 数据的存储结构 有顺序、链接、索引、散列5. 数据结构类型 (按各元素之间前后件关系的复杂度划分):( 1 )线性结构的条件: ①有且只有一个根结点; ②每一个结点最多有一个前件, 也最多有一个后件 2 )非线性结构:不满足线性结构条件的数据结构6. 线性结构:( 1 )线性表① 记录:由若干项数据元素组成的数据元素② 文件:由多个记录构成的线性表③ 线性表的顺序存储结构基本特点:a) 线性表中所有元素所占的存储空间是连续的;b) 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的④ 线性链表(线性表的链式存储结构)数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点结点由两部分组成:a) 用于存储数据元素值,称为数据域;b) 用于存放指针,称为指针域,用于指向前一个或后一个结点★在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。

      ★链式存储方式即可用于表示线性结构,也可用于表示非线性结构★链式存储结构需要更多地存储空间( 2 )栈① 限定在一端(即栈顶)进行插入与删除的线性表② 栈顶位置用指针 top 表示栈底位置用指针 bottom 表示③ 栈按照 “先进后出 ”( FILO )或 “后进先出 ”(LIFO )组织数据,栈具有记忆作用④ 栈的存储方式有顺序存储和链式存储⑤ 栈的基本运算:a) 入栈运算,在栈顶位置插入元素;b) 退栈运算,删除元素 ( 取出栈顶元素并赋给一个指定的变量) ;c) 读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化⑥ 栈的元素个数 =bottom-top+1( 3 )队列① 指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表② 用 rear 指针指向队尾,用 front 指针指向队头元素的前一个位置③ 队列是 “先进先出 ”( FIFO )或 “后进后出 ”( LILO )的线性表④ 队列运算包括:a) 入队运算:从队尾插入一个元素; b) 退队运算:从队头删除一个元素⑤ 队列的顺序存储结构一般采用队列循环的形式循环队列 s=0 表示队列空; s=1 且 front=rear 表示队列满。

      ⑥ 循环队列的元素个数:front rear 时,元素个数 =n (循环队列容量) -front+rear7 .非线性结构( 1 )树① 每一个结点只有一个前件,称为父结点② 没有前件的结点只有一个,称为树的根结点,简称树的根③ 每一个结点可以有多个后件,称为该结点的子结点④ 没有后件的结点称为叶子结点⑤ 一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度⑥ 树的最大层次称为树的深度 2 )二叉树① 特点:a) 非空二叉树只有一个根结点;b) 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树② 满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则 k 层上有 2 k-1 个结点深度为 m 的满二叉树有 2m -1个结点完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点③ 基本性质:a) 在二叉树的第 k 层上,最多有 2 k-1 (k ≥ 1) 个结点;b) 深度为 m 的二叉树最多有 2 m -1 个结点;c) 度为 0 的结点(即叶子结点) = 度为 2 的结点数 +1 ;d) 二叉树总结点数 = 度为 0 的结点数 + 度为 1 的结点数 + 度为 2 的结点数e) 具有 n 个结点的二叉树,其深度至少为 [log 2 n]+1, 其中 [log2 n] 表示取log 2 n的整数部分f) 具有 n 个结点的完全二叉树的深度为[log 2 n]+1 ;g) 完全二叉树中度为 1 的节点只可能是0或1个补充:增加度为1 的结点不会影响二叉树的叶子结点数,每增加一个度为2 的结点便会增加一个叶子结点,没有度为2 的结点时叶子结点数为1 。

      ④ 二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储⑤ 二叉树的遍历:a) 前序遍历 ( DLR ),首先访问根结点,然后遍历左子树,最后遍历右子树;b) 中序遍历 (LDR ),首先遍历左子树,然后访问根结点,最后遍历右子树;c) 后序遍历 ( LRD )首先遍历左子树,然后访问遍历右子树,最后访问根结点前序遍历结果为 a b d e h i c f g ;中序遍历结果为 d b h e i a f c g ;后序遍历结果为 dh i e b f g c a例 2:图 1.13 的二叉树图 1.13(1)前序遍历先访问整棵二叉树的根结点A ,然后再先序遍历左子树T1;在访问 T1 时,也以先序遍历原则,先访问 T1 的根结点 B ,然后再先序遍历 T1 的左子树 T11 ;在访问 T11 时,也以先序遍历原则,先访问T11的根结点 D ,然后再先序遍历 T11的左子树由于此时T11 的左子树只有H 结点,所以访问 H 结点, T11的左子树先序遍历结束, 根据先序遍历的原则,进行先序遍历T11 的右子树 由于 T11 的右子树只有 I 结点,故访问此结点后T11 的右子树的先序遍历结束。

      先序遍历完T11 子树后,返回 T1子树,先序遍历T1 的右子树先序遍历完T1 子树后,接着先序遍历根结点A 的右子树 T2先序遍历完T2 后,该二叉树的所有结点都已经访问过,各结点被访问的顺序为:ABDHIECFG( 2)中序遍历:先中序遍历左子树,然后再访问根结点,最后再中序遍历右子树对图1.12 的二叉树进行中序遍历,访问各个结点的顺序为: HDIBEAFCG(3)后序遍历:先后序遍历左子树,然后再后序遍历右子树,最后再访问根结点对图 1.12 的二叉树进行后序遍历,访问各个结点的顺序为: HIDEBFGCA 下面树的先序、 中序、后续遍历的结果依次为 __ abdcef _、 bdaecf_、_ dbefca小结:逻辑结构可分为线性表和非线性表线性表包括栈、队列,其存储方式为顺序存储、链式存储均可链式型有:线性链表,带链的栈,带链的队列,循环链表等非线性表包括树 ( 二叉树 ) ,其存储方式为链式存储8. 查找技术只能使用顺序查找的两种情况:( 1 )线性表为无序表,不管是顺序存储还是链式存储;( 2 )表采用链式存储结构,即使是有序线性表★★ 二分法查找只适用于顺序存储的有序表, 对于长度为 n 的有序线性表, 最坏情况只需比较 log 2n次,而顺序查找需要比较 n 次。

      9. 排序技术排序是指将一个无序序列整理成按值非递减顺序排列的有序序列类别排序方法最坏情况下的比较次数冒泡排序 n(n-1)/2交换类快速排序 n(n-1)/2简单插入排序 n(n-1)/2插入类希尔排序 O(n1.5)简单选择排序 n(n-1)/2选择类堆排序 O(nlog2n)★ 相比以上几种 ( 除希尔排序法外 ) ,堆排序法的时间复杂度最小第二章 程序设计基础一. 程序设计设计方法和风格1. “清晰第一、效率第二 ”已成为当今主导的程序设计风格2. 形成良好的程序设计风格需注意:( 1 ) 源程序文档化; ( 2 ) 数据说明的次序要规范化;(3 )语句的结构应该简单直接,不要为提高效率而复杂化; (4 )输入数据前要有提示信息和输出信息符合规范3. 注释:序言性注释和功能性注释二. 结构化程序设计1. 基本原则:( 1 )自顶向下 ; ( 2)逐步求精 ;( 3)模块化; (4 )限制使用 goto 语句2. 基本结构 :( 1 )顺序结构:一种简单的程序设计,最基本、最常用的结构;( 2 )选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;( 3 )循环结构: 又称重复结构, 可根据给定条件, 判断是否需要重复执行某一相同或类似的程序段。

      3. 基本工具: 程序流程图, N-S 图4. 特点: 只有一个入口和出口三. 面向对象的程序设计(主要考虑的是提高软件的可重用性)1. 面向对象的程序设计的首次提出 以 60 年代末挪威奥斯陆大学和挪威计算机中心研制的 SIMULA 语言为标志2. 面向对象方法的优点:( 1 )。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.