计算机公共基础知识考点
计算机公共基础知识题库

计算机公共基础知识题库一、选择题1). 光盘是一种已广泛使用的外存储器,英文缩写CD-ROM指的是( )。
A.只读型光盘B.一次写入光盘C.追记型读写光盘D.可抹型光盘正确答案:A答案解析:CD-ROM(CompactDiscRead-OnlyMemory),即只读型光盘,它是一种在电脑上使用的光碟,这种光碟只能写入数据一次,并且信息将永久保存其上,使用时通过光碟驱动器读出信息。
2). 计算机最早的应用领域是( )。
A.数值计算B.辅助工程C.过程控制D.数据处理正确答案:A答案解析:第一台计算机诞生于第二次世界大战期间,美国军方为了解决计算大量军用数据的难题,成立了由宾夕法尼亚大学莫奇利和埃克特领导的研究小组,开始研制世界上第一台电子计算机。
故答案应为数值计算。
3). 下面关于优盘的描述中,错误的是( )。
A.优盘有基本型、增强型和加密型三种B.优盘的特点是重量轻、体积小C.优盘多固定在机箱内,不便携带D.断电后,优盘还能保持存储的数据不丢失正确答案:C4). 一个教师讲授多门课程,一门课程由多个教师讲授。
则实体教师和课程间的联系是( )。
A.1:1联系B.1:m联系C.m:1联系D.m:n联系正确答案:D5). 计算机网络分为局域网、城域网和广域网,下列属于局域网的是( )。
A.ChinaDDN网B.Novell网C.Chinanet网D.Internet正确答案:B6). 字长是CPU的主要技术性能指标之一,它表示的是( )。
A.CPU的计算结果的有效数字长度B.CPU一次能处理二进制数据的位数C.CPU能表示的最大的有效数字位数D.CPU能表示的十进制整数的位数正确答案:B答案解析:字长是CPU的主要技术指标之一,指的是CPU一次能并行处理的二进制位数。
字长总是8的整数倍,通常PC机的字长为16位(早期)、32位、64位。
7). 计算机能直接识别的语言是( )。
A.高级程序语言B.机器语言C.汇编语言D.C++语言正确答案:B8). 现代计算机中采用二进制数制是因为二进制数的优点是( )。
全国计算机二级公共基础知识必背考点【最新版】

全国计算机二级公共基础知识必背考点1. 算法的有穷性是指算法必须能执行有限个步骤之后终止.2. 算法的时间复杂度是指算法在执行过程中所需要的基本运算次数3. 队列、栈、线性表属于线性数据结构,二叉树不属于4. 数据的存储结构是指:数据的逻辑结构在计算机中的表示5. 一个逻辑数据结构可有多种存储结构,且各种存储结构影响数据处理的效率6. 线性链表是线性表的链式存储结构7. 栈是先进后出、后进先出的线性链表,具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针,是特殊的线性表,只能在一端插入或者删除元素8. 线性链表存储空间不一定连续,且各元素的存储顺序是任意的9. 在深度为7 的满二叉树中,叶子节点的个数为:6410. 能用二分法查找的是顺序存储的有序线性表11. 对长度为N 的线性表进行顺序查找,在最坏的情况下需要比较的次数为:N12. 对于长度为N 的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是:快速排序为N(N-1)/213. 算法的复杂度包括时间复杂度和空间复杂度14. 算法在执行过程中所需要的存储空间称为算法的空间复杂度15. 问题处理方案的正确而完整的描述称为算法16. 数据的逻辑结构在计算机存储控件中的存放方式称为数据的存储结构或者物理结构或者物理存储结构17. 按照逻辑结构分类,数据结构可以分为线性结构和非线性结构,二叉树属于非线性结构18. 数据结构分为逻辑结构和存储结构,循环队列属于存储结构19. 某二叉树中度为2 的结点有18 个,则该二叉树中共有19 个叶子结点20. 一颗二叉树第六层(根节点为第一层)的结点数最多为32 个21. 对长度为10 的线性表进行冒泡排序,最坏的情况下需要比较的次数为4522. 程序经调试改错后还应进行再调试23. 符合结构化程序设计风格的是使用顺序、选择和重复三种基本控制结构标示程序的控制结构24. 结构化程序设计的一种基本方法是逐步求精法、自顶向下、模块法25. 在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送消息26. 在软件工程学中,我们把一组具有相同的数据结构和相同的行为特征的对象的集合定义为类27. 面向对象的方法有对象/继承/类28. 在面向对象的方法中,类的实例称为对象9. 在面向对象的方法中,类描述的是具有相同属性与操作的一组对象30. 结构化程序设计的3 种基本逻辑机构为顺序、选择和重复(循环)31. 在面向对象的方法中,类之间共享属性和操作的机制称为继承32. 软件是程序、数据与相关文档的集合33. 在软件开发中,属于设计阶段的是:数据结构设计、给出系统模块结构、定义模块算法34. 软件工程的主要思想是强调在软件开发的过程中需要应用工程化原则35. 软件交付使用后还应进行维护36. 在结构化方法中,用数据流程图(DFD )作为描述工具的软件开发阶段是需求分析37. 软件设计的原则有抽象、模块化、信息隐蔽38. 为了是模块尽可能独立,需求模块的内聚程度要尽量高,且各模块的耦合程度要尽量弱39. 在软件设计中,属于过程设计工具的是:PDL 过程设计语言、PAD 图、N-S 图40. 软件测试的目的是尽可能多地发现程序中的错误41. 软件需求阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审42. 在结构化方法中,软件功能分解属于总体设计阶段43. 软件工程的三要素:工具过程方法44. 若按功能划分,软件测试的方法通常分为白盒测试和黑盒测试45. 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块),其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块的测试结果46. 程序测试分为静态分析和动态测试,其中静态分析(静态测试)是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误47. 诊断和改正程序中错误的工作通常称为调试48. 软件是程序、数据和文档的集合49. 软件工程研究的内容主要是软件开发技术和软件工程管理50. 数据库系统的核心是数据库管理系统51. 数据库系统的根本目标是解决数据共享问题52. 能给出数据库物理存储与物理存取方法的是内模式53. 在数据库的两极映射中,从概念模式到内模式的映射一般由数据库管理系统实现54. 支持数据库各种操作的软件系统叫作数据库管理系统55. 数据库(DB )\数据库系统(DBS )、数据库管理系统(DBMS )之间的关系是:DBS 包含DB 和DBMS56. 在关系数据库模型中,通常可以把字段称为属性,其值称为属性值57. 用树形结构来表示实体之间联系的模型称为层次模型58. 在E-R 图中,用来表示实体的图形是矩形59. 商品与顾客两个实体之间的联系一般是多对多60. 数据库系统在其内部分为三级模式,即概念模式、内模式和外模式,其中内模式给出了数据库中物理存储结构与物理存取方法62. 数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是数据库系统62. 数据独立性分为逻辑独立性和物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性63.如果一个工人可以管理多台设备,而一个设备只被一个工人管理,则实体工人与实体设备之间存在一对多的关系64. 关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、参照完整性和自定义完整性65. 在关系数据库中,把数据表示成二维表,每一个二维表称为关系或关系表66. 关系数据库管理系统能实现的专门关系运算包括选择、连接和投影。
事业单位考试:计算机公共基础知识

事业单位考试:计算机公共基础知识汇编一.计算机公共基础知识一、计算机网络的概念把分布在不同地理区域的具有独立工作能力的计算机系统通过通信设备和线路由功能完善的网络软件实现资源共享和数据通信的系统。
[要求学生总结]从定义中看出涉及到三个方面的问题:(1)至少两台计算机互联。
(2)通信设备与介质。
(3)网络软件,通信协议和NOS 每一个厂商所制作的网络设备都有所区别,为了使他们之间可以进行通信,相互之间必须遵守一定的规则,即协议表示。
二、计算机网络的组成由硬件系统和软件系统组成。
1、网络硬件连接设备服务器具工作站工作站工作站(1)服务器(server):是整个网络的核心,在管理网络的同时,也为网络用户服务,根据功能不同,又可分为文件服务器,打印服务器、通信服务器、备份服务器,它实际上是一台配置比较好的计算机。
(2)工作(workstation):连接到网络服务器上的计算机,可以实现资源共享。
(3)外围设备:用于将服务器和工作站连接的设备。
起通信作用。
2、网络软件:对硬件进行全面的管理使实现通信和资源共享。
(1)网络操作系统(2)网络通信软件三、计算机网络的作用计算机网络的功能主要表现在以下几个方面:(1)数据通信(2)对分散对象的实时集中控制与管理功能在各种信息管理系统中都要进行数据库集中管理,如各种网络版的信息决策系统,及C/S,B/S结构的应用,常见于企业(INTRANET)信息管理,政府机构的办公自动化中。
(3)资源共享功能文件,打印,数据,应用软件共享服务,可以建立通信服务,传真服务等。
(4)均衡负荷与分布式处理功能在分布式下操作系统管理下将一个大任务分解成一个个小任务,分散到网上不同计算机上执行。
(5)综合信息服务功能WWW,电子邮件,BBS,电子商务,虚拟社区,大学,远程登录,联机会议。
四、计算机网络的发展计算机网络的发展到今已是第四代,早期的计算机高度集中,都是放在一个大房子里,后来出现了分时和批处理,20世纪50年代出现了第一代计算机网络。
计算机二级【公共基础知识】软件工程基础

3.软件的分类
根据应用目标的不同,软件可分应用软件、系 统软件和支撑软件(或工具软件)。
(1)应用软件。它是在特定领域内开发,为特定目 的服务的一类软件。
(2)系统软件。它能与计算机硬件紧密配合在一起, 使计算机系统各个部分、相关的软件和数据协调、 高效的工作的软件。例如:操作系统、数据库管理 系统。
3.4软件测试
软件测试的指用人工或自动手段来运行或测定
某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间
的差别。简单地说,软件测试的目的是尽可能 多地发现程序中的错误。
考点2:软件测试方法
按是否要执行被测试软件的角度分为:静态测 试和动态测试。
静态测试包括代码检查、静态结构分析、代码 质量度量。不实际运行软件,主要通过人工进 行。
1. 详细设计为软件结构图中的每一个模块确定
实现算法和局部数据结构,用某种选定的表 达工具表示算法和数据结构的细节。
详细设计常用工具:
1. 图形工具(程序流程图、 PAD图 、N-S图、 HIPO图)
2. 表格工具(判定表)
3. 语言工具(PDL )
开始 输入R S=3.14 * R*R
输出S
结束
答案:D
例题:
软件工程的出现是由于 A)程序设计方法学的影响 B)软件产业化的需要 C)软件危机的出现 D)计算机的发展
答案:C
例题:
软件设计中,有利于提高模块独立性的一个准 则是
A)低内聚低耦合 B)低内聚高耦合 C)高内聚低耦合 D)高内聚高耦合
答案:C
例题:
下列不属于结构化分析的常用工具的是 A)数据流图 B)数据字典 C)判定树 D)PAD图
计算机二级公共基础知识高频考点归纳总结

第一章数据结构与算法算法1、算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
2、算法的基本特征:是一组严谨地泄义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性(3)有穷性(4)拥有足够的情报。
3、算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
4、指令系统:一个计算机系统能执行的所有指令的集合。
5、基本运算包括:算术运算、逻借运算、关系运算、数据传输。
6、算法的控制结构:顺序结构、选择结构、循环结构。
7、算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
8、算法复杂度:算法时间复杂度和算法空间复杂度。
9、算法时间复杂度是指执行算法所需要的计算工作量。
20、算法空间复杂度是指执行这个算法所需要的内存空间。
数据结构的基本基本概念1、数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻借关系,即数据的逻辑结构:(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数拯的存储结构:(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
2、数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
3、线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
线性表及其顺序存储结构1、线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
2、非空线性表的结构特征:(1)且只有一个根结点al,它无前件:(2)有且只有一个终端结点an.它无后件:(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
计算机二级考试公共基础知识汇总

计算机二级考试公共基础知识汇总【考点1】算法的基本概念1、算法:是指一组有穷的指令集,是解题方案的准确而完整的描述。
算法不等于程序,也不等于计算方法。
2、算法的基本特征:1)确定性,算法中每一步骤都必须有明确定义,不允许有多义性;2)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;3)可行性,算法原则上能够精确地执行;4)拥有足够的情报。
3、算法的组成要素:一个算法由数据对象的运算和操作以及其控制结构这两部分组成。
4、算法的基本运算和操作:算术运算,逻辑运算,关系运算,数据传输。
5、算法的基本控制结构:顺序,选择,循环。
6、算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术。
【考点2】算法的复杂度1、算法效率的度量——算法的复杂度:时间复杂度和空间复杂度。
1)算法时间复杂度:指执行算法所需要的计算工作量。
通常,一个算法所用的时间包括编译时间和运行时间。
2)算法空间复杂度:指执行这个算法所需要的内存空间。
包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间。
空间复杂度和时间复杂度并不相关。
【考点3】数据结构的基本概念数据:数据是客观事物的符号表示,是能输入到计算机中并被计算程序识别和处理的符号的总称,如文档,声音,视频等。
数据元素:数据元素是数据的基本单位。
数据对象:数据对象是性质相同的数据元素的集合。
数据结构:是指由某一数据对象中所有数据成员之间的关系组成的集合。
【考点4】逻辑结构和存储结构1、数据结构可分为数据的逻辑结构和存储结构。
1)数据的逻辑结构是对数据元素之间的逻辑关系的描述,与数据的存储无关,是面向问题的,是独立于计算机的。
它包括数据对象和数据对象之间的关系。
2)数据的存储结构也称为数据的物理结构,是数据在计算机中的存放的方式,是面向计算机的,它包括数据元素的存储方式和关系的存储方式。
2、存储结构和逻辑结构的关系:一种数据的逻辑结构可以表示成多种存储结构即数据的逻辑结构和存储结构不一定一一对应。
公共基础知识考点大全

公共基础知识考点大全
一、体系基础1、组成计算机的主要部件:答:计算机的主要部件有:CPU、主板、内存、固态硬盘、显卡、机箱、电源等。
2、计算机中操作系
统的作用:答:操作系统是计算机系统中最重要的程序,它具有实现资源
管理和程序控制的作用,管理计算机硬件设备和软件资源,实现人机交互
功能,以及提供程序运行的安全环境等功能。
3、企业信息化的基本概念:答:企业信息化是企业管理模式的一种革新,以信息技术为核心的系统化
的管理方式,以信息技术推动企业的管理变革以及利用信息技术支撑企业
管理工作。
二、计算机基础1、计算机硬件结构的基本概念:答:计算机
硬件结构主要包括中央处理器(CPU)、内存、存储器、输入设备和输出设备。
2、计算机软件的类别:答:计算机软件可分为操作系统、应用软件、编程软件等。
3、内存技术的基本原理:答:内存技术是程序运行时,将
程序数据临时存储在内存中的技术。
其核心原理是利用内存的快速查询和
访问来提高计算机存取速度。
计算机公共基础知识重点必考

公共基础补充知识点公共基础复习方法:第一:请把10页纸背下来;第二:把习题册的公共基础题目做好;第三:结合考前公共基础补充知识复习好;(注意:下划线的一般是选择题目,框起来的一般是填空题目,没有下划线和方框标识的一般也是选择题目)数据结构与算法队:。
栈:线性表n2=n0-1栈具有记忆性。
如果要存的数据是1 2 3 4 5,栈可以不顺序存储。
我们存放数据的时候,存储空间不一定是连续的,并且各个元素的存储顺序可以是任意的。
如:链表。
在线性链表中查找一个元素比在顺序表中查找一个元素要快,冒泡排序、选择排序、交换排序、堆排序中平均排序次数最快的是能够用二分查找的是顺序存储的有序线性表。
程序设计基础1、 程序设计方法和技术的发展经过了结构化程序设计和面向对象设计两个阶段。
2、 当今程序设计的风格是“清晰第一,效率第二”。
3、 程序可以没有输入,但是一定要有输出。
4、 结构化程序设计遵循:自顶向下,逐步求精,模块化,限制使用goto 语句(常考)。
5、 面向对象的基本特点:标志唯一性,分类性,多态性,封装性,模块独立性。
尤其重要的是多态性和封装性。
没有类比性。
6、7、8、对应类的一个实例。
(常考)9、10表13、 黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。
方法有:等价类划分法,边界值划分法,错误推测法。
14、 软件测试的四个步骤。
自己默写一遍。
15、 程16、 软件调试方法:强制排错法,回朔法,原因排除法。
17、 软件维护不属于软件生命周期开发阶段的任务。
18、 软件进行了程序调试后还要进行测试。
19、 软件工程的主要思想是:强调在软件开发过程中需要应用工程化的原则。
20、 软件设计中,不属于过程设计工具的是:DFD 图。
21、 结构化分析常见的工具:DFD 图,DD (数据字典),判定树,判定表。
22、 程23、 软件的开发、运行对计算机系统具有依赖性。
24、软件工程的三要素:工具、过程、方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机公共基础知识考点第一章数据结构与算法1.1 算法1.算法的基本概念(1)概念:算法是指一系列解决问题的清晰指令。
(2)4个基本特征:可行性、确定性、有穷性、拥有足够的情报。
(3)两种基本要素:对数据对象的运算与操作、算法的控制结构(运算和操作时间的顺序)。
(4)设计的基本方法:列举法、归纳法、递推法、递归法、减半递推技术和回溯法。
2.算法的复杂度(1)算法的时间复杂度:执行算法所需要的计算工作量。
(2)算法的空间复杂度:执行算法所需的内存空间。
1.2数据结构的基本概念数据结构线互有关联的数据元素的几何,即数据的组织形式。
其中逻辑结构反应数据元素之间逻辑关系;存储结构为数据的逻辑结构在计算机存储空间中的存放形式,有顺序储存、链式储存、索引储存和散列储存四种方式。
数据结构按照各个元素之间前后间关系的复杂程度可以划分为:(1)线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构。
(2)非线性结构:不满足线性结构的数据结构。
1.3线性表及其顺序结构性储存1.线性表的基本概念线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。
2.线性表的顺序储存结构·元素所占的存储空间必须连续。
·元素在存储空间的位置是按照逻辑顺序存放的。
3.线性表的插入运算在第i个元素之前插入一个新元素的步骤如下:步骤一:把原来第n个节点至第i个节点的一次往后移一个元素位置。
步骤二:把新节点放在第i个位置上。
步骤三:修正线性表的节点个数。
在最坏的情况下,即插入元素在第一个位置,线性表中所有元素均需要移动。
4.线性表的删除运算删除第i个位置的元素的步骤如下:步骤一:把第i个元素的n-i个元素一次往前移动一个位置;步骤二:修正线性表的结点个数。
1.4栈和队列1.栈及其基本运算(1)基本概念:栈是一种特殊的线性表,其插入原酸与删除运算只在线性表的一端进行,也成为“先进后出”表或“后进先出”表。
·栈顶:允许插入与删除的一端。
·栈低:栈顶的另一端。
·空栈:栈中没有元素的栈。
(2)特点·栈顶元素是最后被插入和最早被删除的元素。
·栈底元素是最早被插入和最后被删除的元素。
·栈有记忆作用。
·在顺序储存结构下,栈的插入和删除运算不需要移动表中其他数据元素。
·栈顶指针top动态反映了栈中元素的变化情况。
(3)顺序存储和运算:入栈运算、退栈运算和读栈顶运算2.队列及其基本运算(1)基本概念:队列是指允许在一端进行插入,在林一端进行删除的线性表,又称“先进先出”的线性表。
·队尾:允许插入的一端,用尾指着指向队尾元素。
·排头:允许删除的一端,用头指针指向头元素的前一位置。
(2)循环队列及其运算所谓循环队列,就是讲队列存储龙剑的最后一个位置绕道第一个位置,形成逻辑上的环状空间。
入队原酸是指在循环队列的队尾加入一个新元素。
当循环队列非空(s=1)且队尾指针等于队头指针时说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。
退队运算是指在循环队列的队头位置退出一个元素并赋给制定的变量。
首先将队头指针进一,然后将派头指针指向的元素赋给制定的变量。
当循环队列为空时不能进行退队运算,这种情况称为“下溢”。
1.5线性链表在定义的链表中若只含有一个指针域来存放下一个元素地址,成这样的链表为单链表或者线性链表。
在链式存储方式中要求每个节点由两部分组成:一部分用于存放数据元素之,称为数据域;另一部分用于存放指针,称为指针域。
其中指针用于指向该节点的前一个或者后一个节点(即前件或后件)。
1.6 树和二叉树1.树的基本概念2.树是简单的非线性结构,树中有且仅有一个没有前驱的节点称为“根”,其余节点分成m 个互不相交的有限集合T1,T2,…,T m,每隔几何优势一个数,称为T1,T2,…,T m为根节点的子树。
·父节点:每一个节点只有一个前件,无前件的节点只有一个称为树的根节点(简称树的根)。
·子节点:每一个节点可以接多个后件,无后件的节点称为叶子节点。
·树的度:所有节点最大的度。
·树的深度:树的最大层次。
2.二叉树的定义及基本性质(1)二叉树的定义:二叉树是一种非线性结构,是有限的节点集合,该集合为空(空二叉树)或由一个根节点及两棵互不相交的左右二叉子树组成。
可分为满二叉树和完全二叉树。
其中满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
二叉树具有以下特性:·二叉树可为空,空的二叉树没有节点,非空二叉树有且仅有一个根节点。
·每个节点最多有两棵子树,称为左子树和右子树。
(2)二叉树的基本性质性质一:在二叉树的第k层上至多有2k-1个节点(k≥1)。
性质二:深度为m的二叉树至多有2m-1个节点。
性质三:对任何一颗二叉树,度为0的节点(即叶子节点)总是比度为2的节点多一个。
性质四:具有n个节点的完全二叉树的深度至少为[log2n]+1,其中[log2n]表示log2n的完整部分。
3.满二叉树与完全二叉树(1)满二叉树:满二叉树是指这样一种二叉树:出最后一层外,每一层上的所有节点都有两个子节点。
满二叉树在其第i层上有2i-1个节点。
(2)完全二叉树:完全二叉树是指这样的二叉树:除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干节点。
如果一颗具有N个节点的都与深度为k 的二叉树,它的每一个节点都与深度为k的满二叉树中编号为1~n的节点一一对应。
3.二叉树的存储结构二叉树通常采用链式存储结构,存储节点由数据域和指针域(左指针域和右指针域)组成。
二叉树的链式存储结构也称二叉链表,对满二叉树和完全二叉树可按层次进行顺序储存。
4.二叉树的遍历二叉树的遍历是指不重复地访问二叉树中的所有节点,主要指非空二叉树,对于空二叉树则结束返回。
二叉树的遍历包括前序遍历、中序遍历和后序遍历。
(1)前序遍历前序遍历是指在访问根节点,遍历左子树与遍历右子树者三者中,首先访问根节点,然后遍历左子树,最后遍历右子树。
前序遍历描述为:若二叉树为空,则执行空操作;否则①访问根节点;②前序遍历左子树;③前序遍历右子树。
(2)中序遍历中序遍历是指首先遍历左子树,然后访问跟节点,最后遍历右子树。
中序遍历叙述为:若二叉树为空,则执行空操作;否则①中序遍历左子树;②访问根节点;③中序遍历右子树。
(3)后序遍历后序遍历是指在访问根节点,遍历左子树与遍历右子树者三者中,首先遍历左子树,然后遍历右子树,最后访问根节点。
和后续遍历描述为:若二叉树为空,则执行空操作;否则①后序遍历左子树;②后序遍历右子树;③访问根节点。
1.7查找技术(1)顺序查找:在线性表中查找指定的元素。
最坏的情况下,最后一个元素才是要找的元素,则需要与线性表中所有元素比较,比较次数为n。
(2)二分查找:二分查找也称折半查找,它是一种高效率的查找方法。
但是二分查找有条件限制,它要求表必须用且表中元素必须按关键字有序(升序或者降序均可)排列。
对长度为n的有序线性表,在最坏情况下,二分查找法只需比较log2n次。
1.8排序技术(1)交换类排序法·冒泡排序:对待排序序列从后向前或从前向后,一次比较相邻元素的排序码,若发现你序列交换,是较大的元素逐渐从前部移向后部或较小的元素逐渐从后部移向前部,直到所有元素有序位置。
在最坏情况下,对长度为n线性表排序,冒泡排序需要比较的次数为n(n-1)/2.·快速排序:是迄今为止所有内排序算法中速度最快的一种。
它的基本思想是:任取待排列序列中的某个元素作为你基准(一般取第一个元素),通过一趟排序,将待排列元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,有子序列的排序码均大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个排列有序。
最坏情况下,即没戏划分,只得到一个序列,时间效率为O(n2).(2)插入类排序法·简单插入排序法:把n个待排序元素看成是一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
在最坏情况下,即初始排序序列是逆序的情况下,比较次数为n(n-1)/2,移动次数是n(n-1)/2。
·希尔排序法:先将整个待排元素排序分割成若干个子序列(由像个某个“增量”的元素组成的)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)使,再对全体元素进行一次直接插入排序。
(3)选择类排序法·简单选择排序法:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用相同的方法,直到子表空位置。
最坏的情况下需要比较n(n-1)/2次。
·堆排序的方法:首先讲一个无序排列建成堆;然后将堆顶元素(序列中的最大项)与堆中最后一个原色交换(最大项应该在序列的最后)。
不考虑已经交换到最后的那个元素,只考虑前n-1个元素构成的子序列,将该子序列调整为堆。
仿佛做步骤②,指导剩下的子序列空为止。
在最坏的情况下,堆排序法需要比较的次数为O(nlog2n)。
第二章程序设计基础2.1 程序设计方法与风格(1)设计方法:指设计、编制、调试程序的方法和过程,主要有结构化程序设计方法、软件工程方法和面向对象方法。
(2)设计风格:良好的设计风格要注重源程序文档化、数据说明方法、语句的结构和输入输出。
2.2 结构化程序设计1.结构化程序设计的原则结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。
(1)自顶向下:即先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。
(2)逐步求精:对复杂问题,应设计一些子目标作为过渡,逐步细化。
(3)模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每一个小目标成为一个模块;(4)限制使用GOTO语句。
2.结构化程序的基本结构与特点(1)顺序结构:自始至终严格按照程序小红语句的先后顺序逐条执行,是最基本,最普遍的结构形式。
(2)选择结构:又称为分支结构,包括简单选择和分支选择结构。
(3)重复结构:又称为循环结构,根据给定条件,判断是否需要重复执行某一相同的或者类似的程序段。
结构化程序设计中,应该注意事项:(1)使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑。
(2)选用的控制结构只准许有一个入口和一个出口。
(3)程序语言组成容易识别的块,每块只有一个入口和一个出口。
(4)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现。