计算机二级公共基础知识(复习必备)
1算法的基本概念
1、算法一般应具有以下几个基本特征:可行性、确定性、有穷性、拥有足够的情报。
算法是对解题方案的准确而完整的描述,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效和明确的,此顺序将在有限的次数下终止。
2、算法的基本要素
(1)算法中对数据的运算和操作。通常有4类:算术运算,逻辑运算,关系运算和数据传输。
(2)算法的控制结构。算法的功能不仅仅取决于所选择的操作,还与操作之间的执行顺序及算法的控制结构有关。
3、算法设计基本方法
算法设计的基本方法有列举法、归纳法和递推法、递归法和减半递推技术。
4、算法的复杂度(在算法正确的前提下,评价算法的标准)
(1)算法的时间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数。
(2)算法的空间复杂度
算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
数据结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。
数据之间的相互关系称为逻辑结构。通常分为4类基本逻辑结构,即集合、线性结构、树形结构和图状结构或网状结构。存储结构图是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机有两种,即顺序存储结构和链式存储结构。
时间复杂度与空间复杂度之间没有必然的联系。
2数据结构基本概念
1、 数据结构是指反映数据元素之间的数年据元素集合的表示。
2、 所谓数据的逻辑结构,是指所映数据元素之间逻辑关系的数据结构。数据的逻辑结构有两个要素:一是数据元素的集合;二是数据元素之间的关系。
3、 各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
3线性表和线性链表
1、 线性结构与非线性结构
根据数据结构中各数据元素之间前后件关系复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:
(1) 有且只有一个根结点。(2)每一个结点最多有一个前件,也最多有一个后件。
会计从业资格证考哪几门则称该数据结构不是线性结构,则称之为非线性结构。
如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
2、 线性表的基本概念
线性表是由n(n>=0)个数据元素
组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。
3、线性表的顺序存储结构
线性表的顺序存储结构具有以下两个基本特点:线性表中所有元素所占的存储空间是连续的。线性表中各数据元素在存储结构中,其前后件两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面。
在顺序存储结构中,线性表中每一个数据元素在计算机存储空间中的存储地址由该元素在线性表中的位置序号唯一确定。
3、 线性链表
大的线性表,特别是元素变动频繁的大线性表不宜采用顺序存储结构,而应采用链式存储结构。
在链式存储结构中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针于指向该结点的前一个或后一个结点。
在链式存储结构称为线性链表。一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。栈和队列也是线性表,也可以采用链式存储结构。
4、 线性链表的基本运算
线性链表的基本运算有:在非空线性链表中寻包含指定元素值X的前一个结点P,线性链表的插入,线性链表的删除。
教师资格证培训哪个机构靠谱5、 循环链表及其基本运算证券从业准考证打印入口
循环链表的结构与一般的单链表相比,具有以下两个特点:
(1) 在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。
(2) 循环链表中最后一个结点的指针域不是空,而是指向表头结点。
(3) 在单链表中,增加头结点的目的是方便运算的实现。
(4) 循环链表的主要优点是从表中任一结点出发都能访问到整个链表。
⑸ 线性表的顺序存储结构和线性表的链式存储结构分别是随机存取的存储结构、顺序存取的存储结构
潍坊市人社局网站4栈和队列
栈是限定在一端进行插入与删除的线性表。栈是按照“先进后出”或“后进先出”的原则组织数据的。栈的运算、退栈运算、读栈顶元素。
队列是是允许在一端进行插入、而在另一端进行删除的线性表。队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则。
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上环状空间,供队列循环使用。循环队列的初始状态为空,即rear=front=m。
循环队列主要有两个基本运算:入队运算和退队运算。
5树与二叉树
1、 树的基本概念
树是一种简单的非线性结构。树结构中,每一个结点只有一个前件,称为父结点。在树中,没前件的结点只有一个,称为树的根结点,简称为树的根。在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件个数称为结点的度。
树结构具有明显的层次关系,树是是一种层次结构。根结点在第1层。同一层上所有结点的所有子结点在下一层。树的最大层次称为树的深度。
在树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树。要树中,叶子结点没有子树。
2、 二叉树的特点
(1) 非空二叉树只有一个根结点;每一个结点最多有两个棵子树,且分别称为该结点的左子树与与右子树。
(2) 在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树。而树结构中的每一个结点的度可以是任意的。另外,二叉树中的每一个结点的子树被明显地分为左子树与右子树。在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即是叶子结点。
3、 二叉树的性质
(1) 在二叉树的第K层上,最多有2 k-1(k≥1)个结点。
(2) 深度为m的二叉树最多有2 m-1个结点。
(3) 在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
(4) 具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分。
4、 满二叉树与完全二叉树
(1) 满二叉树,除最后一层外,每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2 k-1个结点,且深度为m的满二叉树有2 m-1个结点。
(2) 完全二叉树。除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现;对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p+1.
满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。
具有n个结点的完全二叉树的深度为[log2n]+1。
5、 二叉树的存储结构
二叉树通常采用链式存储结构。与线性链表类似,用于存储二叉树中各元素的存储结点也由两部分组成:数据域与指针域。
6、 二叉树的遍历 :高校学习墙
二叉树的遍历是指不重复地访问二叉树中的所有结点。在遍历二叉树的过程中,一般先遍历左子树,然后再遍历右子树。在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为3种:前序遍历、中序遍历、后序遍历。
六级报名入口登录
(1) 前序遍历(DLR)。所谓前序遍历是首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。因此,前序遍历二叉树的过程是一个递归的过程。
(2) 中序遍历(LDR)。所谓中序遍历是首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。因此,中序遍历二叉树的过程也是一个递归的过程。
(3) 后序遍历(LRD)。所谓后序遍历是首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后右子树,最后访问根结点。因此,后序遍历二叉树的过程也是一个递归的过程。
6查技术
1、顺序查
顺序查又称顺序搜索。顺序查一般是指在线性表中查指定的元素。
如果线性表中的第一个元素就是被查的元素,则只需做一次比较就查成功,最坏的情况是被查元素是线性表中的最后一个元素,或者被查元素在线性表中根本不存在,则为了查这个元素需要与线性表中所有的元素进行比较。平均情况下,利用顺序查法在线性表中查一个元素,大约要与线性表中一半的元素进行比较。
2、二分法查
二分法查只适用于顺序存储的有序表。
设有序线性表的长度为n,被查元素为x,则对分查的方法为:将x与线性表的中间项进行比较,如果中间项的值等于x,则说明查到,查结束;如果x小于中间项的值,则在线性表的前半部分以相同的方法进行查;如果大于中间项的值,则在线性表的后半部分以相同的方法进行查,这个过程一直进行到查成功或子表长度为0(说明线性表中没有该元素)为止。
当有序线性表为顺序存储时才能采用二分查,效率比顺序查高得多。对于长度为n的有序线性表,在最坏的情况下,二分查只需要比较log2n次。
最简单的交换排序方法是冒泡排序法。
7排序技术
排序是指将一个无序序列整理成按值非递减顺序排序的有序序列。
1、 交换类排序法
交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序法和快速排序法都属于交换类的排序方法。
(1) 冒泡排序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
(2) 快速排序。快速排序法的基本思想为:从线性表中选取一个元素,设为T,将线性表后面小于T的元素移到前面,而前面大于T的元素移到后面,结果就将线性表分成了两部分,T插入到分界线的位置处,这个过程称为线性表的分隔。如果对分割后的各子表再按上述原则进行分割,并且,这种分割过程可以一直做下去,直到所有子表为空为止,则此时的线性表就变成了有序表。2022年护士资格证考试题库