2022年二级VB公共基础知识 .pdf
《2022年二级VB公共基础知识 .pdf》由会员分享,可在线阅读,更多相关《2022年二级VB公共基础知识 .pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、全国计算机等级考试二级公共基础知识第 1 页,共 24 页数据结构与算法一、基本概念:数据 (Data) :信息的载体,能够被计算机识别、存储和加工处理的物理符号。包括文本类型的数据 (如:字母、数字、汉字) 和多媒体类型的数据( 如:声音、动画、图像) 。数据元素 (Data Element):是数据的基本单位,有时也称为元素、结点、顶点、记录,可以有若干个数据项(字段、域、属性)组成。数据结构( Data Structure) :指的是数据之间的相互关系,即数据的组织形式。其包括三个部分:逻辑结构数据元素之间的逻辑关系存储结构数据元素及其关系在计算机存储器内的表示。数据的运算(算法)即对数
2、据施加的操作数据的逻辑结构有两大类:线性结构特征是:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。例:一维数组、链表、栈、队列、串、线性表、线性链表非 线 性 结构特征是:一个结点可能有多个直接前趋和直接后继。例:多维数组、广义表、树、图数据的存储结构有以下基本存储方法顺序存储方法该方法是将逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,一般通过数组来实现的链接存储方法该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。通过指针类型来实现的。索引存储方法该方法通常是在存储结点信息的
3、同时,还建立附加的索引表,索引表中的每一项称为索引项,索引项的一般形式是:关键字,地址。散列存储方法该方法的基本思想是根据结点的关键字直接计算出该结点的存储地址,通过散列函数实现。例:除余法散列函数、相乘取整法散列函数算法的概念: 计算机算法为计算机解题的过程实际上是在实施某种算法。算法的基本特征:可行性针对实际问题而设计的算法,执行后能够得到满意的结果确定性算法中的每一个步骤都必须有明确的定义,不允许出现歧义性有穷性算法必须在有限时间内做完,即必须在执行有限个步骤之后终止。4、算法的复杂度包括时间复杂度和空间发杂度。时间复杂度该算法执行的时间耗费,它是该算法所求解决问题规模n 的函数空间复杂
4、度该算法执行是耗费的存储空间,它也是问题规模n 的函数二、线性表:线性表 (Linear List):是由n(n=0) 个数据元素 ( 结点)a1,a2,a3, ,an组成的有限序列。对于非空的线性表,有且仅有一个开始结点a1,它没有直接前趋;有且仅有一个终端结点an,它没有直接后继;其余的结点有且仅有一个直接前趋结点和一个直接后继结点。线性表的存储结构:1、顺序存储 (Sequential List):将线性表的结点按逻辑次序依次存放在一组地址连续的存储单元里,用这种方法存储的线性表称为顺序表。2、链式存储 (Linked List): 逻辑上相邻的结点,物理上也相邻,存储单元可以是连续的,
5、也可以是不连续的,在存储每个结点值的同时,还存储指向其后继结点的地址,用这种方法存储的线性表称为链表。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 24 页 - - - - - - - - - 全国计算机等级考试二级公共基础知识第 2 页,共 24 页常见的运算有:表的初始化、求表的长度、取表中的第i 个结点、查找结点、插入新的结点、删除结点。顺序表和链表的比较:基于空间的考虑A、顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。B、顺序表占的存储空间必须是连
6、续的,而链表占的存储空间可以是连续的,也可是不连续的C、顺序表存储密度为1,而链表中的每个结点,除了数据域外, 还要额外的设置指针域,存储密度小于1 基于时间的考虑A、在链表中的任何位置上进行插入和删除,只需要修改指针,而顺序表中平均将要移动近一半的结点。B、顺序表是随机存取结构,它的存取时间为O(1) ,而链表需从头结点顺着链扫描链表。总之,当线性表的长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表作为存储结构;当线性表的长度变化较大,难以估计其存储规模时,以采用链表作为存储结构为好。若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;对于频繁进
7、行插入和删除的线性表,宜采用链表做存储结构。例 :关于线性表的描述中,错误的是( C )A、线性表是线性结构 B 、线性表的顺序存储结构,必须占用一片连续的存储单元C、线性表是单链表 D、线性表的链式存储结构,不必占用一片连续的存储单元三、栈:栈(Stack) :是限制仅在表的一端进行插入和删除运算的线性表,通常称插入、 删除的这一端为栈顶 (Top) ,另一端称为栈底(Bottom) 。当表中没有元素时称为空栈。是一种后进先出的线性表,又称为 LIFO 表。栈是按照“先进后出 ”或“ 后进先出 ”的原则组织数据的。1、 栈的顺序存储及其运算用一维数组 s(1:m)作为栈的顺序存储空间,其中m
8、 为最大容量。在栈的顺序存储空间 s(1:m)中, s(bottom)为栈底元素, s(top)为栈顶元素栈的基本运算有三种:入栈、退栈与读栈顶元素。Top=0 表示栈空; top=m 表示栈满。入 栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加一(即top 加 1) ,然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。这种情况称为栈“上溢“错误。退 栈运算是指取出栈顶元素并赋给一个指定的变量。首先将栈顶元素(栈顶元素指向的元素)赋给一个指定的变量,然后将栈顶指针减一(即top 减 1) 。当栈顶指针为0 时,说明栈空
9、,不可能进行退栈操作。这种情况称为栈的“下溢“错误。读 栈顶 运算是指将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它赋给一个变量,因此栈顶指针不会改变。当栈顶指针为0 时,说明栈空,读不到栈顶元素栈的存储:顺序存储、链式存储例 :若进栈的输入序列是A、B、C、D、 E,并且在它们进栈的过程中可以进行出栈操作,则不可能出现的出栈序列是( D )A、EDCBA B、DECBA C、DCEAB D、ABCDE 四、队列:队列 (Queue) :也是一种运算受限的线性表,它只允许在表的一端进行插入,而在另一端进行删除。 允许删除的一段称为队头(Front),允许插入的一段称为队尾(Re
10、ar) 。 (类似于生活中的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 24 页 - - - - - - - - - 全国计算机等级考试二级公共基础知识第 3 页,共 24 页购物排队)。是一种先进先出的线性表,又称为 FIFO 表。队列的修改是按照先进先出的原则进行的,因此队列也称为“先进先出 “的线性表,或者”后进后出 “的线性表。队列的基本运算:队列的初始化、判队空、判队满、入队、出队队列的存储实现:顺序存储、链式存储例 :一个队列的入队序列是1,2,3,4,则
11、队列的输出序列是( B )A、4,3, 2,1 B、 1,2,3,4 C、1, 4,3,2 D、3,2,4,1 五、串:串 (String):是零个或多个字符组成的有限序列。串中所包含的字符个数称为该串的长度。串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应地称为主串注:空串是任意串的子串,任意串是其自身的子串串有串常量、串变量之分:1、串常量在程序中只能被引用但不能改变其值,即只能读不能写。2、串变量其值是可以改变的。串的基本运算:求串长、串复制、串联接、串比较、字符定位、六、树(非线性结构):树 (Tree) :是 n(n=0) 个结点的有限集T,T(n=0) 为空时称为空树
12、,否则它满足如下两个条件:1、有且仅有一个特定的称为根(Root) 的结点2、其余的结点可分为m(m=0)个互不相交的子集T1,T2,,. ,Tm ,其中每个子集本身又是一棵树,并称其为根的子树(Subtree)。在树的树形图表示中,结点通常是用圆圈表示的,结点的名字一般是写在圆圈旁边,有时亦可写在圆圈内。度 (Degree) :一个结点拥有的子树数称为该结点的度。一棵树的度是指该树中结点的最大度数。叶子 (Leaf) :度为零的结点称为叶子或终端结点分支结点 (Node) :度不为零的结点称为分支结点。树中某个结点的子树之根称为该结点的孩子(Child)结点或子结点, 相应的该结点 称为孩子
13、结点的双亲 (Parents)结点或父结点。同一个双亲的孩子称为兄弟结点 (Sibling) 结点的层数 (Level)是从根起算 , 设根的层数为1, 其余结点的层数等于其双亲结点的层数加1. 树中结点的最大层数称为树的高度(Height)或深度 (Depth). 森林 (Forest): 是 m(m=0)棵互不相交的树的集合。删去一棵树的根,就得到一个森林,反之,加上一个结点作树根,森林就变为一棵树。二叉树 (Binary Tree):是n(n=0) 个结点的有限集,它或者是空集(n=0) ,或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。二叉树中,每个结点最
14、多只能有两棵子树,并且有左右之分。二叉树的五种基本形态:例:具有3 个结点的二叉树有几种形态。满二叉树 (Full Binary Tree): 一棵深度为k 且有 2K-1个结点的二叉树称为满二叉树完全二叉树 (Complete Binary Tree):若一棵二叉树至多只有最下面的两层上结点的度数可以小于 2,并且最下一层上的结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 24 页 - - - - - - -
15、 - - 全国计算机等级考试二级公共基础知识第 4 页,共 24 页二叉树的性质:性质 1:二叉树第i 层上的结点数目最多为2K-1(i=1)性质 2:深度为 k 的二叉树至多有2k-1 个结点 (k=1)性质 3:在任意一棵二叉树中,若终端结点的个数为n0,度为 2 的结点数为n2,则 n0=n2+1 性质 4:具有 n 个结点的完全二叉树的深度为lgn+1(取下整 ) 或 lg(n+1)(取上整 ) 。完全二叉树具有两个性质:(5) :具有 n 个结点的完全二叉树的深度为(log2|n)+1 。. (6):设完全二叉树共有n 个结点。如果从根结点开始,按层次(没层次从左到右)用自然数 1,
16、2,.,n 给结点进行编号,则对于编号为k(k=1,2,.)的结点由以下结论:(1) 若 k=1, 则该结点为根结点, 它没有父结点; 若 k1,则该结点的父结点编号为INT(k/2). (2)若 2k=1) 3) 设一棵完全二叉树共有699 个结点,则在该二叉树中的叶子结点数为_B_。A. 349 B. 350 C. 255 D. 351 4) 在深度为5 的满二叉树中,叶子结点的个数为_C_。A. 32 B. 31 C. 16 D. 15 一棵深度为k 且有 2K-1个结点的二叉树称为满二叉树名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
17、- - - - 名师精心整理 - - - - - - - 第 5 页,共 24 页 - - - - - - - - - 全国计算机等级考试二级公共基础知识第 6 页,共 24 页七、排序 (Sort) :所谓排序,就是指整理文件中的记录,使之按关键字递增(或递减)次序排列起来。交换类排序法冒 泡 排 序(Bubble Sorting) 过对待排序序列从后向前或从前向后( 从下标较大的元素开始) ,依次比较相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移向后部或较小的元素逐渐从后部移向前部(从下标较大的单元移向下标较小的单元)。冒泡排序法, 需要比较的次数为 n(n-1)/2快
18、 速 排 序(Quick Sorting) 任取待排序序列中的某个元素作为基准( 一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。选择排序(Selection Sorting)简单选择排序法扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止简单选择排序法,最坏情况需要n(n-1)/2次比较;堆排序法堆排序法,最坏情况需要 O(nlog n )次比较。插入排序(Insertion Sor
19、ting) 简单插入排序法每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。简单插入排序法,最坏情况需要n(n-1)/2次比较希尔排序法希尔排序法,最坏情况需要 O(n )次比较。各种内部排序方法的比较排序方法时间复杂度空间复杂度最好时间平均时间最坏时间直接插入O(n) O(n2) O(n2) O(1) 直接选择O(n2) O(n2) O(n2) O(1) 冒 泡O(n) O(n2) O(n2) O(1) 快 速O(nlgn) O(nlgn) O(n2) O(lgn) 堆O(nlgn) O(nlgn) O(nlgn) O(1) 例 :1)
20、下列关于栈的叙述中正确的是_D_。A. 在栈中只能插入数据B. 在栈中只能删除数据C. 栈是先进先出的线性表D. 栈是先进后出的线性表2) 希尔排序法属于哪一种类型的排序法_B_。A. 交换类排序法C. 选择类排序法B. 插入类排序法D. 建堆排序法3) 对一个具有n个元素的序列进行冒泡排序,在最坏情况下,要进行交换的次数是(C )A、n(n+1)/2 B、n(n-1)/2 C、 n*n/2 D、n(n+1)/2-1 4) 对 n 个元素进行冒泡排序过程中,最好情况下的时间复杂性为( D )A、O(1) B、O(log2n) C、O(n2) D、O(n) 5) 对 n 个元素进行快速排序的过程
21、中,平均情况下的时间复杂性为( D )名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 24 页 - - - - - - - - - 全国计算机等级考试二级公共基础知识第 7 页,共 24 页A、O(1) B、O(lgn) C、 O(n2) D、O(nlgn) 6) 在下列选项中,哪个不是一个算法一般应该具有的基本特征_C_。A. 确定性B. 可行性C. 无穷性D. 拥有足够的情报7) 下列关于队列的叙述中正确的是_C_。A. 在队列中只能插入数据B. 在队列中只能删除数据
22、C. 队列是先进先出的线性表D. 队列是先进后出的线性表8) 在下列几种排序方法中,要求内存量最大的是_D_。A. 插入排序B. 选择排序C. 快速排序D. 归并排序9) 线性表的顺序存储结构和线性表的链式存储结构分别是_B_。A. 顺序存取的存储结构、顺序存取的存储结构B. 随机存取的存储结构、顺序存取的存储结构C. 随机存取的存储结构、随机存取的存储结构D. 任意存取的存储结构、任意存取的存储结构10) 在单链表中,增加头结点的目的是_A_。A. 方便运算的实现B. 使单链表至少有一个结点C. 标识表结点中首结点的位置D. 说明单链表是线性表的链式存储实现八、查找 (Searching)
23、:所谓查找是指给定一个值K,在含有 n 个结点的表中找出关键字等于给定值K的结点。若找到,则查找成功,返回该结点的信息或该结点在表中的位置;否则查找失败,返回相关的提示信息。顺序查找 (Sequential Search) 的基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键字和给定值K 相比较,若当前扫描到的结点关键字与K 相等,则查找成功;若扫描结束后,仍未找到关键字等于K 的结点,则查找失败。顺序查找即适用顺序存储结构,又适用链式存储结构。查找成功的平均查找长度为:(n 为结点数目 ) (1+2+3+4+ +n) / n = (n+1)/2 二分查找 (Binary Se
24、arch) 又称折半查找 ,它是一种效率较高的查找方法,二分查找要求线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。另外,二分查找只适用顺序存储结构,在链式存储结构上无法实现二分查找。二分法查找只适用于顺序存储的有序表,对于长度为 n 的序线性表,最坏情况只需比较? n 次。查找成功时的平均查找长度:(n 为结点数目 ) 当 n 很大时,可用近似公式: lg(n+1)-1 表示例:对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为_B_。A. N+1 B. N 1) 1nlg(n1n名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
25、- - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 24 页 - - - - - - - - - 全国计算机等级考试二级公共基础知识第 8 页,共 24 页C. (N+1)/2 D. N/2一、程序设计设计方法和风格如何形成良好的程序设计风格:1、源程序文档化; 2、数据说明的方法; 3、语句的结构清晰第一、效率第二; 4、输入和输出二、结构化程序设计结构化程序设计方法的四条原则 是: 1、自顶向下; 2、逐步求精; 3、模块化; 4、限制使用goto 语句。结构化程序的基本的特点:顺 序 结构种简单的程序设计,最基本、最常用的结构;选 择 结构又称分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年二级VB公共基础知识 2022 二级 VB 公共 基础知识
限制150内