c语言公共基础知识.pdfVIP

  • 10
  • 0
  • 约2.12万字
  • 约 35页
  • 2020-05-14 发布于江苏
  • 举报
第一部分公共基础部分知识归纳 数据结构与算法 算法是一组严谨地定义运算顺序的规则 算法的基本要素一是对数据对象 运算和操作 ,二是算法 控制结构 算法设计基本方法列举法、归纳法、递推、递归、减半递推 算法的复杂度包括时间复杂度和空间复杂度 时间复杂度执行算法所需的计算工作量 空间复杂度执行算法所需的内存空间 数据结构相互有关联的数据元素的集合。如春、夏、秋、冬;18、11、35、23、 16。。。;父亲、儿子、女儿等都是数据元素。 前件数据元素之间的关系 ,如父亲是儿子和女儿的前件 后件如儿子是父亲的后件 结构指数据元素之间的前后件关系 数据的逻辑结构—是指反映数据元素之间逻辑关系,而与它们在计算机中的存储位置 无关 数据的存储结构(物理结构)数据的逻辑结构在计算机存储空间中的存放形式 ,数 据元素在计算机存储空间的位置关系可能与逻辑关系不同。 根据数据结构中各数据元素之间前后件关系的复杂程度,可将数据结构分两类线性 结构与非线性结构 线性结构(线性表)满足下列两个条件( 1)有且只有一个根结点 (2)每一个结点 最多有一个前件和后件。则称该数据结构为线性结构,否则为非线性结构。 线性表是最简单、最常用的一种数据结构,其数据元素之间的相对位置是线性的,其 存储方式为顺序存储的,如数组 栈是限定在一端进行插入与删除的线性表,一端封闭,另一端开口,其操作原则是 “先进后出”,栈的运算有入栈、退栈、读栈顶元素 队列是指在一端进行插入(称为队尾)而在另一端进行删除(称为队头)的线性表, 其操作规则是“先进先出”,其运算有入队和退队。 树是一种简单的非线性结构,而且是层次结构,是倒立的大树,有根结点、父结点、 子结点、叶子结点。根结点在第一层,一个结点所拥有的后件的个数称为该结点的度, 所有结点中最大的度称为树的度,树的最大层次称为树的深度。 二叉树 (1)非空二叉树只有一个根结点(2)每一个结点最多有两棵子树(左子树 和右子树),其存储结构为链式。 二叉树性质 (1)K 层上最多有 2 (K-1)个结点(2)深度为 m 的二叉树最多有 2m- 1 个结点 (3)度为 0 的结点(叶子结点)比度为 2 的结点多一个(4)具有 n 个结点的二叉树, 其深度至少为[Log2n]+1,其中[Log2n]表示对 Log2n 取整 满二叉树除最后一层外,其余层的结点都有两个子结点 完全二叉树除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少 右边的若干结点,叶子结点只可能在层次最大的两层上出现。满二叉树是完全二叉树, 而完全二叉树不是满二叉树。完全二叉树有两个性质:(1)具有 n 个结点的完全二叉 树的深度为[Log2n]+1 (2)二叉树遍历不重复地访问各个结点。分为前序遍历 (DLR-根左右)、中序遍历(LDR-左根右)和后序遍历(LRD-左右根) 查找技术顺序查找——对于长度为 n 的有序线性表,查找时需要比较 n 次 二分法查找——对于长度为 n 的有序线性表,查找时需要比较 log2n 次 排序技术假设线性表的长度为 n,则冒泡排序和简单插入排序的比较次数(时间复 杂度)为 n(n-1)/2;希尔排序的比较次数为 O(n1.5);简单选择排序的比较次数为 n(n- 1)/2;堆排序的比较次数为 O(nlog2n). 习题 1 算法的时间复杂度是指(),算法的空间复杂度是指(); 线性表、栈、队列、线性链表是(线性结构),树是(非线性结构);数据的存储结 构是指(); 队列是(先进先出),栈是(先进后出); 下列二叉树的遍历结果:前序遍历(ABDECF)、中序遍历(DBEAFC)、后续遍历 (DEBFCA) 在深度为 5 的满二叉树中,叶子结点的个数为(16);设树 T 的度为 4 ,其中度为 1, 2,3 ,4 的结点的个数分别为 4 ,2,1,1。则 T 中的叶子结点的个数为(8);对于 长度为 n 的有序线性表,顺序查找次数为(n),二分法查找次数为(log2n);一棵完 全二叉树共有 700 个结点,则在该二叉树中有(350)个叶子结点;一棵二叉树的中 序遍历结果为 DBEAFC,前序遍历结果为ABDECF ,则后续遍历结果为(DEBFCA); 冒泡排序的时间复杂度为(n(n-1)/2);在一个容量为 15 的循环队列中,若头指针 front=6,尾指针 rear=9,则该循环队列中共有(3)元素; 程序设计基础 结构化程序设计的三种结构是顺序、选择和循环 对象表示客观

文档评论(0)

1亿VIP精品文档

相关文档