计算机二级考试之公共基础知识课件.ppt
《计算机二级考试之公共基础知识课件.ppt》由会员分享,可在线阅读,更多相关《计算机二级考试之公共基础知识课件.ppt(141页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机二算机二级考考试之公共基之公共基础知知识课件件二级公共基础知识点分值分布二级公共基础知识点分值分布 第一章 数据结构与算法(30%)n 考试大纲1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。5.线性单链表、双向链表与循环链表的结构及其基本运算。6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。7.顺序查找与二分法查找算法;基本排序算法(
2、交换类排序,选择类排序,插入类排序)。一.算法的基本概念*1.所谓算法是指解题方案的准确而完整的描述。严格来说,一个算法必须具有以下五个主要特征:n有穷性有穷性(有限步骤内完成)、确定性确定性(结果不能模棱两可)、可可行性行性(能够完成目标要求)、输入输入、输出输出n输出和输出输出和输出可说成:拥有足够的情报拥有足够的情报 2.算法的组成要素n算法中对数据的运算和操作n算法的控制结构一.算法的基本概念3.算法设计的要求算法设计的要求 通常设计一个“好”的算法,应考虑达到以下目标。n正确性正确性:算法应当满足具体问题的需求。n可读性可读性:算法主要是为了人的阅读与交流,其次才是机器执行。可读性好
3、有助于人对算法的理解。n健壮性健壮性:当输入数据非法时,算法也能适当地做出反应或进行处理,而不会产生莫明其妙的输出结果。n效率与低存储量需求。效率与低存储量需求。效率指的是算法执行时间。对于同一个问题如果有多个算法可以解决,执行时间短的算法效率高。低存储量需求指算法执行过程中所需要的最大存储空间。一.算法的基本概念4.算法设计基本方法n列举法n归纳法n递推n递归n减半递推n回溯法一.算法的基本概念*5.算法的复杂度可分为时间复杂度和空间复杂度,是衡量算法优劣的量度。(1)算法的时间复杂度算法的时间复杂度n算法的时间复杂度是指执行算法所需要的工作量。一般情况下,算法的时间复杂度为算法中的基本操作
4、重复执行的次基本操作重复执行的次数数。是问题规模n的某个函数f(n)f(n)。一.算法的基本概念n何估算算法的时间复杂度?任何一个算法都是由一个“控制结构”和若干“原操作原操作”组成的,因此一个算法的执行时间可以看成是所有原操作的执行时间之和 (原操作原操作(i)(i)的执行次数的执行次数原操作原操作(i)(i)的执行时间的执行时间 )nFor i=1 to 100 for j=1 to 100 s=i*j。算法时间复杂度为:O(n2)一.算法的基本概念(2 2)算法的空间复杂度)算法的空间复杂度n算法的空间负杂度是指执行这个算法所需要的内存空间。空间复杂度作为算法所需存储空间的量度,记作:S
5、(n)=O(g(n)S(n)=O(g(n),其中n n为问题的规模,表示随问题规模的增大,算法运行所需存储量的增长率与g(n)g(n)的增长率相同。n一般不估计空间复杂度(3)(3)算法分析:算法分析:对算法的效率算法的效率进行分析,以求改以求改进进的过程。典型例题1.一个算法是对某类给定的问题求解过程的精确描述,算法中的操作都 可能通过将已经实现的基本操作执行有限次来实现,这句话说明算法具有什么特性?A 有穷性 B 可行性 C 确定性 D 健壮性2.算法的时间复杂度是指()A)执行算法程序所需要的时间 B)算法程序的长度 C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数 3.
6、下面叙述正确的是()A)算法的执行效率与数据的存储结构无关 B)算法得空间复杂度是指算法程序中指令(或语句)的条数 C)算法得有穷性是指算法必须能在执行有限个步骤之后终止 D)以上三种描述都不对 4.算法能正确地实现预定功能的特性称为算法的()。A正确性 B易读性 C健壮性 D高效率5.算法的计算量的大小称为计算的()。A效率 B.复杂性 C.现实性 D.难度 二.数据结构1.数据结构的定义:数据结构的定义:是指相互有关联的数据元素的集合。备注:1)数据元素:是数据的基本单位基本单位,由数据项组成。通俗的说:数据元素就是现实世界中的一个实体的抽象。2)数据项:数据的最小单位最小单位。*2.数据
7、结构主要研究三个方面的问题:数据结构主要研究三个方面的问题:1)数据集合中各数据元素之间的逻辑关系,即数据的逻辑结构逻辑结构。2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构存储结构。3)对各种数据结构进行的运算运算。数据结构简单实例Student Student zhangsan Student lisi name;zhangsan;lisi;Sno;s20081001;s20081001;class;计算机1班;计算机1班;Rscore;515;501;数据的逻辑结构n数据逻辑结构数据逻辑结构是对数据元素之间存在的逻辑关系的描述(本身固有的),它可以用一个数据元素的
8、集合和定义在此集合上的若干关系表示。n与数据在计算机中的存储位置无关,是独立于计算机的。n常见的有线性结构线性结构和非线非线性结构性结构两种。数据的存储结构n数据的存储结构数据的存储结构是数据元素及其关系在计算机存储器中的表示,也称为物理结构物理结构。存储结构的主要内容是指在存储空间中使用一个存储结点来存储一个数据元素数据元素,在存储空间中建立各存储结点之间的关联关联,来表示数据元素之间的逻辑关系逻辑关系。n常见的存储结构:n顺序存储结构、链式存储结构、索引存储结构、散列存储结构典型例题(1)数据结构中,与所使用的计算机无关的是数据的A)存储结构 B)物理结构C)逻辑结构 D)物理和存储结构(
9、2)数据在计算机中的存储位置改变了,()不变。A.数据的存储地址 B.数据间的逻辑关系C.数据的物理存储结构 D.逻辑结构和物理结构线性结构和非线性结构线性结构线性结构n在数据元素的非空有限集合中,线性结构的逻辑特征如下:n存在一个唯一的被称为“第一个”的数据元素n存在一个唯一的被称为“最后一个”的数据元素n除第一个之外,集合中的每个数据元素均有且只有一个直接前驱n除最后一个之外,集合中的每个数据元素均有且只有一个直接后继非线性结构非线性结构n非线性结构的逻辑特征是:一个结点可能有多个直接前驱和直接后继,树和图都属于非线性结构。线性表n通常以下列 n 个数据元素的序列”表示线性表线性表 :(a
10、1,a2,.,ai,.,an)n序列中数据元素的个数 n 定义为线性表的表长表长;n=0 时的线性表被称为空表空表。称 i 为ai在线性表中的位序位序。n元素大多数时候称为”结点结点“线性表的顺序存储n线性表的顺序存储结构用一组地址连续地址连续的存储单元依次存放依次存放线性表中的数据元素,即以“存储位置相邻存储位置相邻”表示“位序相继的两个数据元素之间的前驱和后继的关系,并以表中第一个元素的存储位置作为线性表的起始地址,称作线性表的基地址线性表的基地址。所有结点的存储位置均可由第一个结点的存储位置得到 ADR(ai)=ADR(a1)+(i-1)C 基地址基地址 一个数据元素所占存储量一个数据元
11、素所占存储量 线性表的插入和删除运算n插入结点插入结点:要在第i(1in)个元素之前插入一个新元素时,首先要从最后一个元素开始,直到第i个元素之间共n-i+1个元素依次向后移动一个位置,然后将新元素插入到第i项。n删除结点:删除结点:要删除第i(1in)个元素,要从第i+1个元素开始,直到第n个元素,共n-i个元素依次向前移动一个位置。栈n栈栈是限定仅在表的一端进行插入和删除表的一端进行插入和删除操作的线性表线性表。允许插入和删除的一端称为栈顶,另一端称为栈底。n栈顶元素栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈栈底元素底元素总是最先被插入,也是最后被删除的元素。因此,栈是一种
12、后进先出后进先出(LIFO)的线性表。n通常用指针top指示栈顶位置,用指针bottom指示栈底位置。栈的顺序存储及运算n用一维数组S(1:m)作为栈的顺序存储空间,m为栈的最大容量。top=0表示栈为空,top=m表示栈满。n栈的操作n入栈:入栈:在栈顶位置插入一个新元素,栈顶指针top加1。n退栈退栈:取出栈顶元素并赋值给一个指定的变量,栈顶指针top减1。n取栈顶元素:取栈顶元素:将栈顶元素的值赋给一个指定的变量,不删除栈顶元素,栈顶指针栈顶指针toptop不变不变。栈的溢出n上溢上溢 当栈满时再做进栈运算必定产生空间溢出,简称“上溢”。n下溢下溢 当栈空时再做退栈运算也将产生溢出,简称
13、“下溢”。n备注备注 (1)上溢是一种出错状态出错状态,应该设法避免避免之;下溢则可能是正常正常现象现象。(2)两个栈共享两个栈共享一块空间时,分配的存储空间要大于等于栈元大于等于栈元素较多的栈素较多的栈,这样可以减少减少“上溢上溢”。栈n如果某栈的入栈顺序是ABCDEF,则出栈顺序不可能是哪个()A、DCEFBA B、ABCDEF C、EDFCAB D、CBAEDF 备注:这样的题目,字母出来的顺序不可以:备注:这样的题目,字母出来的顺序不可以:先大,先大,后小,再中。后小,再中。例:如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e
14、1C)e3,e4,e1,e2 D)任意顺序队列n队列队列是一种先进先出先进先出的线性表线性表,它只允许在表的一端插一端插入入元素(队尾队尾),在另一端删除元素另一端删除元素(队头队头)。n向队尾队尾插入一个元素的操作称为入队,头指针入队,头指针front+1front+1,从队头队头删除一个元素的操作称为退队退队,尾指针尾指针rear+1rear+1。n队列和栈队列和栈一样是一种特殊的线性表特殊的线性表、是操作受限操作受限的线性线性表表、也称其为限定性数据结构为限定性数据结构。循环队列n将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的逻辑上的环状空间环状空间。循环队列初始状态为空,即f
15、ront=rear=0.nFront总是指示队头元素,rear指示队尾元素加1的位置。n入队操作时,rear加1,若rear+1=容量,则置rear=0;n退队操作时,front加1,若front+1=容量,则置front=0。n*当rearfront时,元素个数rearfront;当rearnextP-next删除节点:删除节点:p-next=p-next-nextp-next=p-next-next插入节点:插入节点:p-next=pxp-next=px px-next=p-after that px-next=p-after that双向链表和循环链表n在双向链表中的结点包含两个指针域,
16、其中一个指向直接后继,另一个指向直接前驱。n循环链表的特点是表中最后一个结点的指针域指向第一个结点,整个链表成为一个由链指针相链接的环。据此,从表中任一节点出发均可找到表中其它结点。在循环链表中增加了一个表头结点,其指针域指向第一个元素结点,头指针则指向头结点。HEADHEADHEADHEADHEADHEAD回顾:例:已知一组数据原先采用顺序存储,现改为散列存储,则()不变。A.存储结构 B.逻辑结构 C.数据间的顺序 D.不确定例:常见的线性结构有_,_,_例:在线性表中删除第5个节点,则原第6个节点的位置(),如果单链表则()A.6 B.5 C.不变 D.不确定例:已知栈的头指针front
17、当前位置为5,从栈中读取一个数据,则front指向()A.5 B.6 C.不变 D.不确定例:如果某栈的入栈顺序是123456,则出栈顺序不可能是哪个()A、435621 B.123456 C、546312 D、654321树及其基本概念n树是一种简单的非线性结构,在树中,所有的数据元素之间具有明显的层次性关系。n树是(n0)个结点的有限集合,在任意一棵非空树中:(1)有且仅有一个特定的结点称为根结点。(2)当n1时,其余的结点可分为m个互不相交的子集T1,T2,Tm,其中每个有限子集本身又是一棵树,并且称为根的子树。n集合为空的树简称为空树;树中的元素称为结点。树的主要术语n结点的度:结点拥
18、有的子树数。n叶节点(终端结点):度为0的结点。n双亲、孩子和兄弟:结点的子树的根节点称为该结点的孩子,该结点称为孩子结点的双亲结点。同一个双亲结点的孩子互称为兄弟。n层次:结点的层次从根开始定义,根为第一层,根的孩子为第二层。n深度:树中结点的最大层次称为树的深度或高度。二叉树n二叉树是n(n0)个数据元素的有限集,它或为空集,或者含有唯一的称为根的元素,且其余元素分成两个互不相交的子集,每个子集自身也是一棵二叉树,分别称为根的左子树和右子树。n二叉树是另一种树型结构,其特点是每个结点至多有两棵子树,并且二叉树的子树有左右之分,其顺序不能任意颠倒。二叉树的基本性质n性质性质1 1 在二叉树的
19、第i层上至多有2i-1个结点(i1)n性质性质2 2 深度为k的二叉树至多有2k-1个结点(k1)n性性质质3 3 对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则:n0=n2+1n性性质质4 4 具有n个结点的二叉树,其深度至少为log2n+1例:一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为 A)221 B)219 C)231 D)229 例:一棵含18个结点的二叉树的高度至少为(),至多为()A)3 B)4 C)5 D)6 E)18 F)17满二叉树和完全二叉树n满二叉树满二叉树除最后一层外,每一层上的所有结点都有两个子节点,也就是说每一
20、层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。n完全二叉树完全二叉树除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。具有n个结点的完全二叉树,其深度为log2n+1。n从以上定义可知,满二叉树也是完全二叉树,反之则不然。满二叉树满二叉树 最大层的结点最大层的结点均向左靠齐均向左靠齐 完全二叉树完全二叉树 ADCBEF二叉树的基本性质性质性质5 5 如果对一棵有 n 个结点的完全二叉树(其深度为log2n+1)的结点按层序(从第1层到第log2n+1 层,每层从左到右)从1起开始编号,则对任一编号为 i 的结
21、点(1in),则:(1)如果 i=1,则编号为 i 的结点是二叉树的根,无双亲;如果 i1,则其双亲结点 parent(i)的编号是i/2。(2)如果 2in,则编号为 i 的结点无左孩子(编号为 i 的结点为叶子结点);否则其左孩子结点 lChild(i)的编号是 2i。(3)如果 2i+1n,则编号为 i 的结点无右孩子;否则其右孩子结点 rChild(i)的编号是结点 2i+1。例:在一棵二叉树上第5层的结点数最多是 A)8 B)16 C)32 D)15例:在深度为5的满二叉树中,叶子结点的个数为 A)32 B)31 C)16 D)15例:深度为4的二叉树中,编号为7的节点,它的右孩子节
22、点为()该树为满二叉树;如果该树是完全二叉树,但不是满二叉树,则它的最大节点编号为()A)14 B)8 C)9 D)15例:设树T的度为4,其中度为1,2,3,4的结点个数分别人4,2,1,1.则T中的叶子结点数为 A)8 B)7 C)6)二叉树的链式存储结构n在二叉树的链式存储结构中,每个结点设置三个域,即数据域,左指针域和右指针域,两个指针域分别存储左右子树根节点的存储位置,即指针。L(i)V(i)R(i)LchildvalueRchild二叉树的链式存储结构二叉树的遍历n二叉树的遍历指不重复地访问二叉树的所有结点。从二叉树的结构定义得知,二叉树是由根结点、左子树和右子树三部分构成,则遍历
23、二叉树的操作可分解为访问根结点、遍历左子树和遍历右子树三个子操作,并且由二叉树的递归定义可知,遍历左子树和遍历右子树可如同遍历二叉树一样递归进行。先序遍历二叉树先序遍历二叉树中序遍历二叉树中序遍历二叉树后序遍历二叉树后序遍历二叉树若二叉树为空,则空操作;否则(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。若二叉树为空,则空操作;否则(1)中序遍历左子树;(2)访问根结点;(3)中序遍历右子树。若二叉树为空,则空操作;否则(1)后序遍历左子树;(2)后序遍历右子树;(3)访问根结点。二叉树的遍历先序遍历:ABDEGHCFIJ中序遍历:DBGEHACIJF后序遍历:DGHEBJIFC
24、A二叉树的遍历n已知前序和中序遍历时,根据前序判断出根,根据已知前序和中序遍历时,根据前序判断出根,根据中序分出左右子树;再根据前序分别判断出左右子中序分出左右子树;再根据前序分别判断出左右子树的根,然后再分出左右子树,以此类推下去树的根,然后再分出左右子树,以此类推下去例:某二叉树的前序遍历结点访问顺序是A B D E C,中序遍历的结点访问顺序是D B E A C,则后序遍历的结点访问顺序是:n已知后序和中序遍历时,根据后序判断出根,根据已知后序和中序遍历时,根据后序判断出根,根据中序分出左右子树;再根据后序分别判断出左右子中序分出左右子树;再根据后序分别判断出左右子树的根,然后再分出左右
25、子树,以此类推下去树的根,然后再分出左右子树,以此类推下去例:已知一棵二叉树的中根序列和后根序列分别为31564和36541,试画出这棵二叉树。前序和中序推理过程nA B D E C 前序nD B E A C 中序中序和后序推理过程n3 6 5 4 1 后序n3 1 5 6 4 中序例题例例1 1:某二叉树的前序遍历结点访问顺序是A AB BD DG GC CE EF FH H,中序遍历的结点访问顺序是D DG GB BA AE EC CH HF F,则后序遍历的结点访问顺序是:例例2 2:已知一棵二叉树的中根序列和后根序列分别为B BD DC CE EA AF FH HG G和D DE EC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 考试 公共 基础知识 课件
限制150内