计算机2级公共基础知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文由hbxshero贡献
ppt文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

计算机等级考试
公共基础知识
数计学院卫春芳
计算机二级考试公共基础知识大纲
数据结构与算法
程序设计基础软件工程基础数据库设计基础
这四个方面在试卷中出现的情况是:选择题10个(20分),填空题5个(10分),总分值占到了试卷卷面分的30%,是一个不小的比例。

第2页
计算机二级考试公共基础知识试卷分析
章节考试时间
数据结构程序设软件工数据库设计基础程基础计基础与算法
2007年4月 2007年9月 2008年4月 2008年9月 2009年3月 2009年9月 2010年3月
10分 12分 10分 10分 10分 10分 10分
2分 4分 2分 2分 2分 2分 0分
10分 8分 8分 8分 8分 8分 10分
8分 6分 10分 10分 10分 10分 10分
第3页
一、基本数据结构与算法
算法
⒈算法的基本概念 2.算法复杂 2.算法复杂度的概念和意义
数据结构
⒈数据结构的概念⒉线性表⒊栈和队列⒋树与二叉树⒌查找技术⒍排序技术
对于等级考试,这个部分的考核重点主要在对于等级考试,这个部分的考核重点主要在算法和数据结构的基本概重点主要遍历、),还有排序和查找考试中也经常会涉及到二叉树遍历结点),还有排序和查找考试中也经常会涉及到。

念、二叉树(遍历、结点),还有排序和查找考试中也经常会涉及到。

第4页
⒈算法的基本概念
算法的定义
算法是程序设计的核心
对解题方案准确而完整的描述称为算法。

对解题方案准确而完整的描述称为算法。

算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。

通俗点说,定义明确的规则。

通俗点说,就是计算机解题的过计算的方法) 在这个过程中,程(计算的方法)。

在这个过程中,无论是形成解题思路(推理实现的算法)还是编写程序( 思路(推理实现的算法)还是编写程序(操作实现的算都是在实施某种算法。

法),都是在实施某种算法。

个数从大到小进行排序。

例: n个数从大到小进行排序。

个数从大到小进行排序常用的有冒泡排序、选择排序等。

有多种排序方法,常用的有冒泡排序、选择排序等。

第5页
2 . 算法的基本特征
一个算法应该具有以下五个重要的特征:一个算法应该具有以下五个重要的特征:有穷性确定性输入输出可行性
一个算法必须保证执行有限步之后结束;算法的每一步骤必须有确切的定义;
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;一个算法有一个或多个输出,以反映对输入数据加工后的结果。

没有输出的算法是毫无意义的;
算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成
第6页
3. 算法的表示
一个算法的表示需要使用一些语言形式。

一个算法的表示需要使用一些语言形式。

传统的算法图形法,如“流程图”和N-S图图形法,传统的算法图形法流程图”图目前常用的方法使用伪码描述算法。

使用伪码描述算法。

目前常用的方法使用伪码描述算法算法与计算机程序算法是一组逻辑步骤算法是一组逻辑步骤程序——用计算机语言描述的算法程序用计算机语言描述的算法
问题:输入园的半径,计算园的面积 INPUT r S=3.14 * r*r PTINT S
开始输入R 输入R S=3.14 * R*R
输出S 输出S
结束第7页
算法举例:个数排序算法举例:n个数排序
冒泡排序的方法:冒泡排序的方法:
1.扫描整个线性表,逐次对扫描整个线性表,扫描整个线性表相邻的两个元素进行比较,相邻的两个元素进行比较,若为逆序,则交换;若为逆序,则交换;第一趟扫描的结果使最大的元素排到表的最后;
2.除最后一个元素,对剩余除最后一个元素,除最后一个元素的元素重复上述过程,的元素重复上述过程,将次大的数排到表的倒数第二个位置;位置;
3.重复上述过程;重复上述过程;重复上述过程对于长度为n的线性表,对于长度为的线性表,冒泡的线性表排序需要对表扫描n-1遍。

排序需要对表扫描遍第8页
4. 算法的两个基本要素:算法的两个基本要素:
一是对数据对象的运算和操作;二是算法的控制结构。

基本运算和操作
算术运算关系运算逻辑运算数据传输
控制结构
顺序选择循环
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法第9页 5. 算法评价
评价一个算法优劣的主要标准是算法的执行效率和存储需求:评价一个算法优劣的主要标准是算法的执行效率和存储需求:时间复杂度:执行这个算法所需要的计算工作量时间复杂度:执行这个算法所需要的计算工作量
一般可以用算法在执行过程中所需基本运算的执行次数来度量计算工作量
空间复杂度:执行这个算法所需要的内存空间空间复杂度:执行这个算法所需要的内存空间
算法在执行过程中临时占用的存储空间时间复杂度它大致等于计算机执行一种简单操作所需的平均时间时间复杂度它大致等于计算机执行一种简单操作所需的平均时间与算法它大致等于计算机执行一种简单操作所需的平均时间与算法中进行简单操作的次数的乘积
简单操作的次数的乘积。

中进行简单操作的次数的乘积。

一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间、算法中的输入输出数据所占用的存储空间和的存储空间、算法中的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个部分临时占用的存储空间这三个部分
第10页
一、算法
对解题方案准确而完整的描述称为算法。

对解题方案准确而完整的描述称为算法。

算法不等于程序,也不等计算机方法,程序的编制不算法不等于程序,也不等计算机方法,可能优于算法的设计。

可能优于算法的设计。

算法评价:
时间复杂度:时间复杂度:执行这个算法所需要的计算工作量空间复杂度:空间复杂度:执行这个算法所需要的内存空间
第11页
算法习题:
(1) 在计算机中,算法是指在计算机中,算法是指。

A. 查询方法 B. 加工方法 (c)
C. 解题方案的准确而完整的描述
D. 排序方法 (2)下列叙述中正确的是(07年4月)下列叙述中正确的是年月 A)算法的效率只与问题的规模有关,而与数据的存储结构无关算法的效率只与问题的规模有关,算法的效率只与问题的规模有关 B)算法的时间复杂度是指执行算法所需要的计算工作量算法的时间复杂度是指执行算法所需要的计算工作量 C)数据的逻辑结构与存储结构是一一对应的数据的逻辑结构与存储结构是一一对应的 (B) D)算法的时间复杂度与空间复杂度一定相关算法的时间复杂度与空间复杂度一定相关 (3)算法的有穷性是指 (08年4月) 算法的有穷性是指年月 A)算法程序的运行时间是有限的) (A) B)算法程序所处理的数据量是有限的) C)算法程序的长度是有限的) D)算法只能被有限的用户使用)
第12页
(4) 算法的时问复杂度是指 (2010年3月) 年月 A)算法的执行时间算法的执行时间
B)算法所处理的数据量算法所处理的数据量 C)算法程序中的语句或指令条数算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数算法在执行过程中所需要的基本运算次数 (5) 算法的空间复杂度是指 (09年9月) 年月 A)算法在执行过程中所需要的计算机存储空间) B)算法所处理的数据量) C)算法程序中的语句或指令条数) D)算法在执行过程中所需要的临时工作单元数) (6) 下列叙述中正确的是 (06年9月) 年月 (D)
计算工作量
(A)
(D)
A)一个算法的空间复杂度大,则其时间复杂度也必定大)一个算法的空间复杂度大, B)一个算法的空间复杂度大,则其时间复杂度必定小)一个算法的空间复杂度大, C)一个算法的时间复杂度大,则其空间复杂度必定小)一个算法的时间复杂度大, D)上述三种说法都不对)
第13页
二、数据结构
程序=算法数据结构程序算法+数据结构算法
计算机在进行数据处理时,计算机在进行数据处理时,实际需要处理的数据元素一般有
很多,而这些大量的数据元素都需要存放在计算机中,因此,大量很多,而这些大量的数据元素都需要存放在计算机中,因此,数据元素在计算机中如何组织,以便提高数据处理的效率,的数据元素在计算机中如何组织,以便提高数据处理的效率,并且节省计算机的存储空间,这是进行数据处理的关键问题。

节省计算机的存储空间,这是进行数据处理的关键问题。

数据结构是指相互有关联的数据元素的集合。

数据结构是指相互有关联的数据元素的集合。

一般来说,人们不会同时处理特征完全不同且互相之间没有任何关系的各类数据元素,对于具有不同特征的数据元素总是分别进行处理。

一般情况下,在具有相同特征的数据元素集合中,一般情况下,在具有相同特征的数据元素集合中,各个数据元素之间存在有某种关系(即联系),),这种关系反映了该集元素之间存在有某种关系(即联系),这种关系反映了该集合中的数据元素所固有的一种结构。

合中的数据元素所固有的一种结构。

第14页
二. 数据结构
数据结构是指相互有关联的数据元素的集合。

数据结构是指相互有关联的数据元素的集合。

数据结构是研究数据和数据之间关系的一门
学科,它包括三个方面。

学科,它包括三个方面。

(1)数据集合中各数据元素之间所固有的逻)辑关系,即数据的逻辑结构;辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计)在对数据进行处理时,算机中的存储关系,即数据的存储结构;算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。

)对各种数据结构进行的运算。

第15页
1.
逻辑结构
数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。

数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。

数据的逻辑结构包含:数据的逻辑结构包含:(1)表示数据元素的信息;)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。

)表示各数据元素之间的前后件关系。

例:
1. 一年四季的数据结构 B=(D,R) D={春,夏,秋,冬} 春 R={(春,夏) ,(夏,秋),(秋,冬)} 春夏秋
2. 家庭成员的数据结构 B=(D,R) D={父亲,儿子,女儿父亲,父亲儿子,女儿} R={(父亲,儿子 ,(父亲,女儿父亲,父亲,父亲儿子) 父亲女儿)} 春数据结构的图形表示
夏父亲秋冬
儿子
女儿第16页
常见的逻辑结构有:线性结构、树形结构和图形结构。

线性结构、树形结构和图形结构。

图形结线性结构树形结构构
线性结构
结构的的的
树形结构
结构的
图形结构
结构
的线形结构。

线形结构。

图形。

的。

结构
第17页
结构的树形结构和图形结构
2. 存储结构(物理结构)存储结构(
计算机在实际进行数据处理时,计算机在实际进行数据处理时,被处理的各数据元素总是被存放在计算机的存储空间中,并且,算机的存储空间中,并且,各数据元素在计算机存储空间中的位置与它们的逻辑关系不一定是相同的,而且一般也不可能相同。

它们的逻辑关系不一定是相同的,而且一般也不可能相同。

如:一年四季家庭成员计算机存储空间怎样存放?
存储结构指数据结构在计算机存储空间中的具体实现。

存储结构指数据结构在计算机存储空间中的具体实现。

常见的存储结构有:常见的存储结构有:顺序存储结构链式存储结构索引存储结构存储结构
只抽象地反映数据元素之间的关系的结构,系的结构,而不管其存储方式的数据结构称为逻辑结构。

数据结构称为逻辑结构。

? 一种数据结构可以根据需要表示一种数据结构可以根据需要表示成一种或多种存储结构。

成一种或多种存储结构。

第18页
通常,一个数据结构中的元素结点可能是动态变化的。

通常,一个数据结构中的元素结点可能是动态变化的。

根据需要或在处理过程中,据需要或在处理过程中,可以在一个数据结构中增加一个新结插入运算),也可以删除某个结点(删除运算),),也可以删除某个结点),除此之点(插入运算),也可以删除某个结点(删除运算),除此之对数据结构的运算还有查找、分类、合并、分解、外,对数据结构的运算还有查找、分类、合并、分解、复制和修改。

修改。

在对数据结构的处理过程中,在对数据结构的处理过程中,不仅数据结构中结点的个数在动态变化,而且,在动态变化,而且,各数据元素之间的关系也有可能在动态地变化。

变化。

如:无序表变有序表
3. 数据的运算检索插入删除更新排序
数据结构是研究数据和数据之间关系的一门学科,关系的一门学科,研究以下三方面内容:内容:
数据的逻辑结构数据的存储结构数据的运算
第19页
常见的数据结构
1.线性表线性表
2.栈和队列栈和队列
3.树树
上一页下一页停止放映
第20|92页 20|92页 |92
1.线性表(Linear List)线性表( List)
线性表是由n(线性表是由(n≥0)个数据元素
a1,a2,…,ai,…,an组成的一个有限序列。

,,组成的一个有限序列。

简单的线性表
春夏秋冬
复杂的线性表
记录1 记录记录2 记录记录3 记录记录4 记录
第21页 02011001
张三男李四女
……
02011003
线性表的存储结构
线性表的存储结构有两种:线性表的存储结构有两种:顺序存储结构链式存储结构存储地址
2000 2004

a1 a2 … ai … an …
占4个字节个字节
线性表的顺序存储结构
顺序存储结构把逻辑上相邻的顺序存储结构把逻辑上相邻的逻辑上相邻数据元素存储在物理上相邻物理上相邻的存数据元素存储在物理上相邻的存储单元里,顺序存储结构只存储储单元里,顺序存储结构只存储结点的值,不存储结点间的关系,结点的值,不存储结点间的关系,结点间的关系由存储单元的邻接关系来体现。

关系来体现。


2000+4*(i-1)

2000+4*(n-1)
Loa( Loa(ai)=Loa(a1)+L*(i-1) =Loa( +L*(
第i个数的地址第一个数的地址 L为该类型数所占的字节第22页
顺序表的插入和删除运算
线性表的顺序存储结构称为顺序表。

线性表的顺序存储结构称为顺序表。

顺序表的插入运算顺序表的删除运算在线性表顺序存储情况下,在线性表顺序存储情况下,要插入或删除一个元素,都会由于数据元素的移动而消耗大量的处理时间,都会由于数据元素的移动而消耗大量的处理时间,所以这种存储方式对于小线性表或其中数据元素不经常变动的线性表是合适的。

常变动的线性表是合适的。

第23页
线性表的链式存储结构
线性表的链式存储结构称为线性链表。

线性表的链式存储结构称为线性链表。

链式存储结构不要求逻辑上相邻的数据元素物理位置也相邻,而且各数据元素的存储顺序也是任意的。

置也相邻,而且各数据元素的存储顺序也是任意的。

各数据元素的先后关系是由各结点的指针域指示。

各数据元素的先后关系是由各结点的指针域指示。

链式存储结构的每一个存储结点不仅存储结点的值,链式存储结构的每一个存储结点不仅存储结点的值,而且存储结点之间的关系:而且存储结点之间的关系:
数据域
指针域
第24页
线性链表的物理状态线性链表的物理状态
应用举例——应用举例——线性链表的存储结构——线性链表的存储结构
设线性表为(a1,a2,a3,a4,a5)
1 a1
线性表的顺线性表的顺序存储结构序存储结构
HEAD
1 2 3 4 5 6 7 8 9 10 3
a2 a1 a4
9 1 10
2 a2
3 a3
4 a4
5 a5
6 7
3 1
注意:1 2 3 此类编号不代表所在的地址单元的地址编码
a3 a5
10
5 0
9
5
HEAD
a1
a2
a3
a4
a5
第25页
线性链表的逻辑状态
线性链表的插入和删除运算
单链表的插入运算单链表的删除运算采用链式存储结构,存储空间开销较大,采用链式存储结构,存储空间开销较大,但是进行插入和删除运算不会造成大量元素的移动。

入和删除运算不会造成大量元素的移动。

循环链表是加一种形式的链式存储结构。

循环链表是加一种形式的链式存储结构。

它的特点是表中最后一个结点的指针域指向头结点。

表中最后一个结点的指针域指向头结点。

3 HEAD 1 9 5 10
a1
a2
a3
a4
a5
第26页
双向链表的存储结构
提问:单向链表的缺点是什么?提示:如何寻找结点的直接前趋。

双向链表可以克服单链表的单向性的缺点。

在双向链表的结点中有两个指针域,在双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前趋。

直接后继,另一指向直接前趋。

3 HEAD 1 5 10
a1
a2
a3
a4
双向循环链表
线性表 : {a1,a2,a3,a4,a5 } ,,,,
注意:注意:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的。

不一定是相同的。

一个逻辑数据结构可以有多种存储结构,可以有多种存储结构,且不同的存储结构影响数据处理的效率。

线性表的存储结构有两种
顺序存储结构
1 a1
2 a2
3 a3
4 a4
5 a5
6 7
HEAD 3
链式存储结构
1 2 3 4 5 6 7 8 9 10 a3 a5 5 0 a4 10 a1 1 a2 9
第28页
2. 栈和队列
栈和队列都是特殊的线性表。

栈和队列都是特殊的线性表。

栈(Stack)及其基本运算Stack)队列(Queue)及其基本运算队列(Queue)循环队列及其基本运算第29页
栈(Stack)是一种特殊的线性表。

其特点是插入和删 Stack)是一种特殊的线性表线性表。

除运算都只能在线性表的一端进行。

除运算都只能在线性表的一端进行。

栈是按照“先进后出”后进先出”栈是按照“先进后出”或“后进先出”的原则组织数据的线性表。

据的线性表。

栈的物理存储结构可以用顺序结构,栈的物理存储结构可以用顺序结构,也可以用链表结构。

下面讨论顺序存储结构中栈元素的插入和删除运算。

下面讨论顺序存储结构中栈元素的插入和删除运算。

顺序栈的进栈和出栈运算
栈的基本运算有三种:入栈、栈的基本运算有三种:入栈、退栈和读栈顶元素
在顺序栈中插入和删除运算不需要移动表中其他数据元素。

移动表中其他数据元素。

第30页
队列(Queue)是一种特殊的线性表。

其特点是所有的队列(Queue)是一种特殊的线性表。

插入都在表的一端进行所有的删除运算都在表的另进行,删除运算都在表的插入都在表的一端进行,所有的删除运算都在表的另一端进行进行。

一端进行。

队列是按照“先进先出”后进后出”队列是按照“先进先出”或“后进后出”的原则组织数据的线性表。

数据的线性表。

队列的物理存储结构可以用顺序结构,也可以用链式队列的物理存储结构可以用顺序结构,结构。

结构。

顺序队列的运算
栈有三种操作:入栈\出栈\栈有三种操作:入栈\出栈\读栈顶元素队列有三种操作:入队\出队\队列有三种操作:入队\出队\读队首元素例:有入栈元素序列:ABCD,求可能的出栈序列.有入栈元素序列:,求可能的出栈序列.如是队列又是什么情况呢?如是队列又是什么情况呢?
第31页
循环队列把队列的存储空间在逻辑上看作一个环,把队列的存储空间在逻辑上看作一个环,当R指向存指向存储空间的末端后,就把它重新置于始端。

储空间的末端后,就把它重新置于始端。

循环队列的运算
队列中进行插入的一端称做队尾(rear),进行删除的一端进行删除的一端队列中进行插入的一端称做队尾称做队首(front)。

称做队首。

习题:数据结构分为逻辑结构和存储结构,习题:数据结构分为逻辑结构和存储结构,循环队列属于【结构。

(。

(2005年9月)列属于【】结构。

(年月答案:存储结构。

答案:存储结构。

常见数据结构的逻辑结构
线性表栈队列
也是一种操作受限的特殊的线性表线性结构是特殊的线性表
树型结构)树(树型结构)
是一种重要的非线形数据结构
第33页
数据存储结构方面的考题
1:数据的存储结构是指(2005年4月):年月 A) 存储在外存中的数据 C) 数据在计算机中的顺序存储方式 2. 下列叙述中正确的是(2009年3月)年月 A)栈是“先进先出”的线性表)栈是“先进先出” B)队列是“先进后出”的线性表)队列是“先进后出” C)循环队列是非线性结构) D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构)有序线性表既可以采用顺序存储结构, B) 数据所占的存储空间量 D) 数据的逻辑结构在计算机中的表示
答案:D。

答案:。

答案:D。

答案:。

3. 数据结构分为线性结构和非线性结构,带链的队列属于数据结构分为线性结构和非线性结构,带链的队列属于[
4. 下列数据结构中,属于非线性结构的是下列数据结构中, A)循环队列) C) 二叉树 B) 带链队列 D)带链栈)
]。

答案:线性结构。

答案:线性结构。

答案:答案:c 第34页
5。

下列叙述中正确的是()。

(2008年9月)。

下列叙述中正确的是(年月答案:。

答案:A。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空)顺序存储结构的存储一定是连续的,间不一定是连续的 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性)顺序存储结构只针对线性结构,结构 C)顺序存储结构能存储有序表,链式存储结构不能存储有序表)顺序存储结构能存储有序表, D)链式存储结构比顺序存储结构节省存储空间)
答案:。

6。

下列关于栈的叙述正确的是(2008年4月)年月栈按“先进先出” B)栈按先进后出”栈按“ A)栈按“先进先出”组织数据 B)栈按“先进后出”组织数据 C)只能在栈底插入数据 D)不能删除数据答案:B。

答案:。

7. 一个队列的初始状态为空。

现将元素A,B,C,D,E,F,5,4,3,一个队列的初始状态为空。

现将元素,,,,,,,,, 2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。

(2010 ,依次入队,然后再依次退队,】。

(依次入队年3月)月答案:,,,,,,,,,,答案:A,B,C,D,E,F,5,4,3,2,1 第35页
8。

假设用一个长度为50的数组(数组元索的下标从。

假设用一个长度为的数组数组元索的下标从0 的数组(到49)作为栈的存储空间,栈底指针)作为栈的存储空间,栈底指针bottom指间栈底指间栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,元素,栈顶指针指向栈顶元素,如果,指向栈顶元素 top=30(数组下标),则栈中具有【】个元素。

),则栈中具有个元素。

(数组下标),则栈中具有【
(2009年3月)年月
答案:答案:19
9. 设某循环队列的容量为,如果头指针设某循环队列的容量为50,如果头指针front=45(指向指向队头元素的前一位置),尾指针rear=10(指向队尾元素,指向队尾元。

相关文档
最新文档