全国计算机二级公共基础知识--复习
- 格式:doc
- 大小:2.01 MB
- 文档页数:33
全国计算机二级公共基础知识汇总计算机二级公共基础知识是指计算机技术基础知识和应用能力的考核指标,主要包括计算机硬件知识、操作系统知识、计算机网络知识和应用软件知识等多个方面。
下面是对这些知识的详细汇总。
一、计算机硬件知识1.计算机硬件组成:CPU、内存、硬盘、显示器、键盘、鼠标等。
2.计算机的基本原理:二进制原理、信息表示与处理、逻辑门电路等。
3.中央处理器(CPU):主频、Cache、指令集、微架构等。
4.内存:主存和辅存的区别、存储器的层次结构、内存管理等。
5.硬盘:磁盘的组成、磁头的读写过程、磁盘的分区与格式化等。
6.显示器:分辨率、刷新率、色彩深度、投影仪等。
7.输入输出设备:键盘、鼠标、打印机、扫描仪、摄像头等。
8.扩展设备:声卡、显卡、网卡、USB接口等。
二、操作系统知识1.操作系统的功能和分类:任务管理、文件管理、内存管理、设备管理等。
2.Windows操作系统:常见的Windows版本、桌面环境、文件系统、任务管理等。
3.Linux操作系统:常见的Linux发行版、命令行界面、文件系统、用户管理等。
4.进程管理:进程的概念、进程调度、进程同步与互斥等。
5.线程管理:线程的概念、线程与进程的区别、线程同步与互斥等。
6.文件管理:文件的操作、文件的属性、文件系统的结构等。
7.输入输出管理:设备的管理、设备驱动程序、中断和DMA等。
8.网络管理:网络的概念、协议栈、IP地址、路由等。
三、计算机网络知识1.网络的分类:局域网、广域网、互联网、因特网等。
2.数据通信和网络协议:数据的发送和接收、分组交换、网络协议的分层等。
3.网络体系结构:TCP/IP体系结构、OSI参考模型等。
4.网络通信设备:路由器、交换机、集线器、网卡等。
5.网络地址:IP地址、子网掩码、默认网关、DNS等。
6.网络安全:网络攻击与防范、防火墙、VPN等。
7.网络应用:常用的网络服务和应用协议、浏览器、电子邮件等。
8.网络管理:网络配置、故障排除、网络性能监测等。
全国计算机等级考试二级教程——公共基础知识一、计算机的基本组成部分。
计算机由硬件和软件两部分组成,硬件包括中央处理器(CPU)、存储器、输入输出设备等;软件包括操作系统、应用软件等。
1.中央处理器(CPU):计算机的核心部件,执行所有指令。
2.存储器:存储数据和程序。
3.输入设备:把数据从外部输入到计算机中,如键盘、鼠标、扫描仪等。
4.输出设备:把计算机处理的数据输出到外部,如打印机、显示器、音响等。
二、计算机的工作原理。
计算机的工作原理可以分为5个部分:输入、存储、处理、输出和控制。
1.输入:把数据或指令输入到计算机中,通过输入设备进行输入。
2.存储:将输入的数据或指令存储在内存中。
3.处理:根据指令执行相应的操作,如计算、比较、排序等。
4.输出:将处理后的结果输出到外部,通过输出设备进行输出。
5.控制:计算机通过控制器控制各个部件的运行,以完成整个计算过程。
三、计算机的分类。
计算机按其用途和规模可以分为大型机、中型机、小型机和微型计算机。
1.大型机:主要用于大型企业和政府机关,可以同时处理多个用户的请求,性能强劲。
2.中型机:主要用于中小型企业,相对于大型机规模和性能较小。
3.小型机:主要针对个体户、小企业和办公室等,处理能力比微型计算机强。
4.微型计算机:用于一般個人用戶和小型企业,具有价格低廉、体积小及易操作的特点,性能相对其他计算机较弱。
四、操作系统。
操作系统是管理计算机硬件和软件资源的程序,它在计算机的各个层次上进行控制和管理,包括处理器的管理、内存的管理、文件系统的管理等等。
常见的操作系统有:Windows、Linux、Unix、Android等。
五、计算机网络。
计算机网络是指把分布在不同地点的计算机集成在一起,实现资源共享和信息传输的系统。
计算机网络的分层体系结构一般被分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
其中物理层和数据链路层主要负责数据传输的物理和链路层面的工作;网络层和传输层负责数据传输的网络和传输方面的工作;会话层、表示层和应用层则负责数据传输的高层次工作。
计算机二级公共基础常见知识1.计算机硬件-CPU(中央处理器):计算机的核心部件,负责执行指令和处理数据。
-内存:临时存储计算机运行时所需要的数据和指令。
-硬盘:长期存储数据的设备。
-显示器:用于显示计算机的输出结果。
-键盘和鼠标:输入设备,用于输入指令和数据。
-主板:将各个硬件组件连接在一起的电路板。
2.计算机软件-操作系统:控制和管理计算机硬件和软件资源的程序。
-应用程序:用来完成特定任务的软件,如办公软件、图像处理软件等。
- 编程语言:一种用于编写计算机程序的语言,如C、Python等。
3.计算机网络-互联网:全球范围内的计算机网络系统。
-局域网:在同一地区内互连的计算机网络。
-IP地址:互联网协议地址,用于标识计算机的唯一标识符。
4.数据结构-数组:一种线性数据结构,用于存储相同类型的数据。
-链表:一种非连续的数据结构,由一组节点组成。
-栈:一种先进后出的数据结构。
-队列:一种先进先出的数据结构。
-树:一种非线性的数据结构,由节点和边组成。
5.数据库- 关系数据库:使用表格来组织和管理数据的数据库系统,如MySQL、Oracle等。
-SQL(结构化查询语言):用于与关系数据库进行通信和操作的语言。
-数据库管理系统(DBMS):用于管理和操作数据库的软件。
6.算法和数据处理-排序算法:如冒泡排序、插入排序、选择排序等。
-查找算法:如线性查找、二分查找等。
-数据压缩:用于减小数据存储空间和传输带宽的技术。
-数据加密:用于保护数据安全的技术。
7.操作系统- Windows:微软推出的操作系统。
- Linux:一种开源的操作系统。
- macOS:苹果公司的操作系统。
8.办公软件- Microsoft Office:包括Word、Excel、PowerPoint等应用程序。
- WPS Office:金山软件开发的办公软件套装。
9.图像处理- Photoshop:Adobe公司开发的图像处理软件。
-GIMP:一种开源的免费图像处理软件。
全国计算机二级公共基础知识汇总计算机二级公共基础知识是计算机专业人员必备的基本知识,包括计算机基本原理、操作系统、网络原理、数据库原理和计算机应用等方面的知识。
下面是全国计算机二级公共基础知识的完整汇总。
一、计算机基本原理:计算机硬件的组成和工作原理,包括中央处理器、存储器、输入输出设备等。
1.中央处理器:控制计算机的运算和控制活动,包括运算单元和控制单元。
2.存储器:计算机的主要组成部分,包括内存和外存。
3.输入输出设备:与计算机进行交互的设备,包括键盘、鼠标、显示器、打印机等。
二、操作系统:计算机的核心软件,负责管理和控制计算机的资源。
1.操作系统的功能:包括进程管理、内存管理、文件管理、设备管理和用户界面等。
2. 常见的操作系统:Windows、Linux、Unix等。
三、网络原理:计算机网络的基本原理和常用协议,包括网络拓扑、网络协议和安全性等。
1.网络拓扑:指网络中计算机的物理连接方式,包括星型、总线型、环型等。
2.网络协议:指计算机网络中不同计算机之间通信的规则和约定,常见的协议有TCP/IP、HTTP、FTP等。
3.网络安全性:指保护计算机网络不受到非法侵入和攻击的能力,包括防火墙、加密技术等。
四、数据库原理:数据库的基本原理和常用操作,包括数据模型、关系数据库和SQL语言等。
1.数据模型:指描述数据结构、数据操作和数据约束的概念工具,常见的数据模型有层次模型、网状模型和关系模型等。
2. 关系数据库:采用关系模型进行数据组织和管理的数据库,常见的关系数据库有Oracle、MySQL、SQL Server等。
3.SQL语言:结构化查询语言,用于对关系数据库进行查询、更新和管理。
五、计算机应用:计算机在不同领域应用的基本知识,包括办公软件、图像处理、网页设计等。
1.办公软件:包括文字处理、电子表格和演示文稿等。
3. 网页设计:指网页的布局、设计和开发,需要掌握HTML、CSS和JavaScript等技术。
公共基础知识第一章数据结构与算法1.1 算法1.1.1 算法的基本概念1、算法的基本特征可行性、确定性、有穷性、拥有足够的情报所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
2、算法的基本要素(1)算法中对数据的运算和操作在一般的计算机系统中,基本的运算和操作:算术运算、逻辑运算、关系运算、数据传输(2)算法的控制结构描述算法的工具:传统流程图、N-S结构化流程图、算法描述语言等一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成3、算法设计基本方法列举法、归纳法、递推(本质上也属于归纳法,递推关系式往往是归纳的结果)、递归(基础也是归纳,分为直接递归和间接递归两种)、减半递推技术、回溯法(“试”)1.1.2 算法复杂度1、算法的时间复杂度(执行算法所需要的计算工作量)算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数算法的工作量=f(n),n是问题的规模两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关——可以用两种方法来分析算法的工作量:平均性态、最坏情况复杂性2、算法的空间复杂度(执行这个算法所需要的内存空间)如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的1.2 数据结构的基本概念数据结构主要有三个方面的问题:●数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构●在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构●对各种数据结构进行的运算提高数据处理的效率,主要包括两个方面:●提高数据处理的速度●尽量节省在数据处理过程中所占用的计算机存储空间1.2.1 什么是数据结构无序表,只能用顺序查找对分查找只适用于有序表(在词典中查单词的方法类似于对分查找)数据结构是指相互有关联的数据元素的集合(向量、矩阵、图书馆中的图书卡片目录……)在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系(直接前驱与直接后继关系)来描述,前后件关系所表示的实际意义随具体对象的不同而不同1、数据的逻辑结构一个数据结构应包含以下两方面的信息:●表示数据元素的信息●表示各数据元素之间的前后件关系(数据元素之间的前后件关系是指它们的逻辑关系,而与它们在计算机中的存储位置无关)一个数据结构可以表示成:B=(D,R)D为数据元素的集合,R为D中各数据元素之间的前后件关系(一般用二元组来表示)a与b是D中的两个数据,则二元组(a,b)表示a是b的前件,b是a的后件2、数据的存储结构各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般也不可能相同一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构1.2.2 数据结构的图形表示在数据结构中,没有前件的结点称为根结点,没有后件的结点称为终端结点(叶子结点)数据结构中除了根结点与终端结点外的其他结点一般称为内部结点在对数据结构的处理过程中,不仅数据结构中的结点(即数据元素)个数在动态地变化,而且,各数据元素之间的关系也有可能在动态地变化1.2.3 线性结构与非线性结构根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构如果一个非空的数据结构满足两个条件:●有且只有一个根结点●每一个结点最多有一个前件,也最多有一个后件则称该数据结构为线性结构。
全国计算机等级考试二级教程——公共基础知识一、操作系统操作系统是计算机系统中最基本的软件,其作用是管理、协调并控制各类计算机资源,提供给应用程序一个运行环境。
操作系统的特点:1. 并发:多个程序同时运行,需要操作系统管理和调度资源。
2. 共享:多个程序共享计算机资源,操作系统需要合理分配和控制资源的使用。
3. 虚拟:操作系统可以为每个应用程序提供一个虚拟的机器环境,使得每个应用程序都觉得自己在独占计算机资源。
4. 异步:程序的执行都是异步的,操作系统需要管理和协调程序的执行。
常见操作系统:1. Windows2. macOS3. Linux二、数据库数据库是一种用于存储和管理数据的软件系统,它可以提供对数据的快速访问和高效管理。
数据库的特点:1. 数据共享:多个用户可以同时访问数据库,并共享其中的数据。
2. 数据安全:数据库系统可以对数据进行安全控制,保证数据的完整性、一致性和安全性。
3. 数据独立:应用程序和数据库是独立的,应用程序只需要使用提供的数据接口访问数据库。
4. 数据持久化:数据库中的数据可以永久保存,即使电脑断电或重启也不会影响数据的保存。
常见数据库:1. MySQL2. Oracle3. SQL Server三、网络技术网络技术是计算机网络系统的核心,包含了数据传输、数据交换和数据处理等各种技术和方法,使得计算机和网络系统能够高效地进行数据交流和通信。
网络技术的特点:1. 数字化:计算机网络系统中所有数据都是以数字形式传输和处理的。
2. 传输速度快:计算机网络系统能够非常快地进行数据传输和处理。
3. 实时性:计算机网络系统中的数据传输和处理是实时的。
4. 全球化:计算机网络系统可以实现全球范围的数据传输和通信。
常见网络技术:1. TCP/IP协议2. 网络安全技术3. 无线网络技术。
第一章数据结构及算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分常常考查的是算法困难度, 数据结构的概念, 栈, 二叉树的遍历, 二分法查找,读者应对此部分进行重点学习。
具体重点学习知识点:1.算法的概念, 算法时间困难度及空间困难度的概念2.数据结构的定义, 数据逻辑结构及物理结构的定义3.栈的定义及其运算, 线性链表的存储方式4.树及二叉树的概念, 二叉树的基本性质, 完全二叉树的概念, 二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应当了解算法中对数据的基本运算。
计算机解题的过程事实上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性, 确定性, 有穷性, 拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的限制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算, 逻辑运算, 关系运算和数据传输。
(2)算法的限制结构:算法中各操作之间的执行依次称为算法的限制结构。
描述算法的工具通常有传统流程图, N-S结构化流程图, 算法描述语言等。
一个算法一般都可以用依次, 选择, 循环3种基本限制结构组合而成。
考点2 算法困难度考试链接:考点2在笔试考试中,是一个常常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应当识记算法时间困难度及空间困难度的概念。
1.算法的时间困难度算法的时间困难度是指执行算法所须要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明运用肯定的时间单位衡量算法的效率是不合适的。
撇开这些及计算机硬件, 软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依靠于问题的规模(通常用整数n表示),它是问题规模的函数。
计算机二级公共基础知识总结1.计算机基本概念计算机是一种用于处理和存储信息的工具,由硬件和软件组成。
硬件包括中央处理器(CPU)、内存、硬盘、显卡等,而软件包括操作系统、应用程序等。
常见的计算机有个人电脑、服务器、手机等。
2.计算机的组成与工作原理计算机由硬件和软件组成。
硬件包括中央处理器(CPU)、内存、硬盘、显卡等,而软件包括操作系统、应用程序等。
计算机的工作原理是通过执行指令实现对数据的处理和存储。
计算机执行指令的基本步骤是获取指令、解码指令、执行指令、存储结果。
3.计算机数学基础计算机数学基础是计算机科学与技术中的基础学科,包括离散数学、线性代数、概率论和统计等。
离散数学是一种研究离散结构的数学学科,常用于描述计算机科学中的数据结构和算法。
线性代数是一种研究向量空间和线性映射的数学学科,常用于计算机图形学和数据分析中。
概率论和统计是一种研究随机事件和随机变量的数学学科,常用于计算机网络和机器学习中。
4.数据表示与计算机编码计算机中的数据是以二进制形式表示的,每个二进制位称为一个比特(Bit)。
计算机中的数据类型包括整数、浮点数、字符等。
常见的数据表示方法有原码、反码和补码表示法。
计算机中的编码方式有ASCII码、Unicode、UTF-8等。
5.计算机网络与通信计算机网络是一种将多台计算机连接起来,实现数据传输与共享的技术。
计算机网络有局域网、广域网和互联网等不同的类型。
计算机网络中的常见协议有TCP/IP协议、HTTP协议、FTP协议等。
6.操作系统操作系统是一种管理计算机硬件和软件资源的软件,它提供了管理、调度和控制计算机的基本功能。
常见的操作系统有Windows、Linux、Unix等。
7.数据库与数据库管理系统数据库是一种用于存储和管理数据的软件,它提供了数据的增删改查等功能。
数据库管理系统是一种用于管理数据库的软件,它提供了数据的组织、存储和维护等功能。
常见的数据库有关系型数据库和非关系型数据库。
二级计算机公共基础知识1. 计算机硬件基础
- 计算机硬件组成
- 的工作原理
- 内存的种类和作用
- 存储设备的种类和特点
- 输入输出设备的种类和功能
2. 操作系统基础
- 操作系统的概念和作用
- 操作系统的主要功能
- 常见操作系统的种类
- 文件管理和磁盘管理
- 进程和线程管理
3. 网络基础
- 计算机网络的概念和分类
- 网络拓扑结构
- 网络协议和网络模型
- 互联网的工作原理
- 网络安全和加密技术
4. 数据库基础
- 数据库的概念和作用
- 数据库管理系统的种类 - 数据库设计和规范化
- 语言基础
- 数据库安全和备份
5. 算法和数据结构
- 算法的概念和特性
- 常见算法的分析和设计 - 数据结构的种类和应用 - 算法复杂度分析
- 递归和动态规划
6. 程序设计基础
- 程序设计语言的种类
- 程序设计基本概念
- 程序设计流程控制
- 函数和模块化编程
- 面向对象程序设计
7. 信息安全基础
- 信息安全的概念和重要性 - 密码学基础
- 访问控制和身份认证
- 恶意软件和防御措施
- 网络安全和防火墙
以上内容涵盖了二级计算机公共基础知识的主要方面,可以作为学习和复习的参考。
全国计算机二级公共基础知识一、数据结构与算法数据结构指的是数据之间的相互关系,即数据的组织形式。
数据结构用来反映一个数据的内部构成,即一个数据由哪些成分构成、以什么方式构成、呈现什么样的结构。
数据结构有逻辑上的数据结构和物理上的数据结构之分。
逻辑上的数据结构反映数据之间的逻辑关系,而物理上的数据结构反映数据在计算机内部的存储安排。
数据结构是数据存在的形式。
算法是解题的步骤,是指令的有限序列。
它们规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述。
一个问题的解决方案要以算法为基础。
1.1 概念介绍◆算法的时间复杂度:算法的时间复杂度是指执行算法所需要的计算工作量。
算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n)其中n是问题的规模。
例如,两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3。
◆算法的空间复杂度:算法的空间复杂度一般是指执行这个算法所需要的内存空间。
◆数据的逻辑结构数据元素相互之间的关系,称为结构。
数据的逻辑结构:是指反映数据元素之间逻辑关系的数据结构。
◆数据的存储结构数据的存储结构:是数据的逻辑结构在计算机存储空间中的存放形式。
也称数据的物理结构。
各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的。
同一种数据的逻辑结构可以根据需要表示成任意一种或几种不同的存储结构。
数据的顺序存储方式:是将逻辑上相邻的结点存储在物理位置上亦相邻的存储单元里。
也就是将所有存储结点相继存入在一个连续相邻的存储区里。
数据的链式存储方式:是在存储每个结点信息的同时,增加一个指针来表示结点间的逻辑关系。
该方式不要求逻辑上相邻结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
因此,链式存储结构中的每个结点都由两部分组成:一部分用于存储结点本身的信息,称为数据域;另一部分用于存储该结点的后继结点(或前驱结点)的存储单元地址,称为指针域。
指针域可以包含一个或多个指针,这由结点之间的关系所决定。
◆线性结构和非线性结构如果在一个线性结构中,一个数据元素都没有,则称该数据结构为空数据结构。
线性结构的逻辑特征:在一个非空的数据结构中,除第一个数据元素只有一个后继没有前驱、最后一个数据元素只有一个前驱没有后继外,其他的每一个数据元素仅有一个前驱和一个后继。
线性结构也称为线性表。
注:某个元素直接相邻的前一个元素称为此元素的前驱、直接相邻的后一个元素称为此元素的后继。
非线性结构的逻辑特征:在一个非空的数据结构中,某数据元素可能有多于一个前驱或后继。
如树型结构等。
习题:(一)选择题(单选)1. 算法的时间复杂度是指(D)A) 算法的执行时间B) 算法所处理的数据量C) 算法程序中的语句或指令条数D) 算法在执行过程中所需要的基本运算次数1.2线性表线性表是由同一类型的数据元素构成的一种线性的数据结构。
是一种最基本、最常用的数据结构。
线性表常用的存储方式有两种:顺序存储方式和链接存储方式。
线性表的数学定义:L=(a1,a2,a3,…,a n)说明:线性表是具有相同类型的n(n≥0)个数据元素组成的有限序列。
L:为表的名称。
a i(i=1,2, …,n):为表的元素,也称为线性表中的一个结点。
它可以是一个数、一个字符、一个字符串,也可以是一条记录,还可以是复杂的数据对象。
a1是a2的前驱、a2是a1的后继,a2是a3的前驱、a3是a2的后继,…,依次类推。
n:为线性表的长度(元素个数),当n=0时称线性表为空表。
线性表的特点:在非空的线性表中:存在唯一的一个“第一个元素”(根结点)。
存在唯一的一个“最后一个元素”(终端结点)。
除第一个元素外,其他的元素均有唯一的前驱。
除最后一个元素外,其他的元素均有唯一的后继。
1.3栈和队列栈和队列本质上也是线性表,只是它们的操作受到了限制。
1.3.1栈栈是限定仅在表尾进行插入和删除操作的线性表。
表尾称为栈顶(top),表头称为栈底(bottom)。
栈这种数据结构,类似于子弹夹,底端是封闭的,最后压入的子弹总是最先被弹出,最先压入的子弹只能最后被弹出。
栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后能被删除的元素。
即栈是按照“先进后出”或“后进先出”的原则组织数据的。
因此,栈也被称为“先进后出”表或“后进先出”表。
由此可以看出,栈具有记忆作用。
1.3.2队列队列是指只允许在表的一端插入元素、在另一端删除元素的线性表。
允许插入的一端称为队尾(rear),允许删除的一端称为队头(front)。
在队列这种数据结构中,最先插入的元素将最先能够被删除,反之最后插入的元素将最后才能被删除。
因此,队列又称为“先进先出”或“后进后出”的线性表。
1.4树和二叉树1.4.1树树形结构是数据结构中一种很重要的非线性结构。
在树形结构中,所有数据元素之间的关系具有明显的层次特性。
树形结构很像自然界中的树,像一棵倒长的树。
在现实生活中,能用树形结构表示的例子很多。
参见下面的图形:树形结构的基本特征及基本术语:以下图为例:树的根:在树形结构中,没有前驱的结点只有一个,称为树的根结点,简称为树的根。
如:上图中的“R”。
父结点:在树形结构中,每一个结点(除了树的根结点)只有一个前驱,称为父结点。
如:上图中的“R”是K、P、Q、D的父结点;“N”是X、Y的父结点。
子结点:在树形结构中,每个结点可以有多个后继,称为该结点的子结点。
如:上图中的K、P、Q、D是“R”的子结点;X、Y是“N”的子结点。
叶子结点:在树形结构中,没有后继的结点称为叶子结点,也称终端结点。
如:上图中的C、M、F、E、X、G、S、L、Z、A均为叶子结点。
结点的度:在树形结构中,一个结点所拥有的后继个数称为该结点的度。
如:上图中根结点R的度是4;结点T的度是3;结点P、Q、D、O、Y、W的度都为1。
叶子结点的度为0。
树的度:在树形结构中,所有结点中的最大的度称为树的度。
如:上图中树的度为4,因为结点R的度最大,是4。
树的深度:在树形结构中,树的最大层数称为树的深度(或高度)。
如:上图中树的深度是5。
说明:树形结构具有明显的层次关系,即树是一种层次结构。
在树形结构中一般按如下原则分层:1) 根结点在第1层。
2) 其余结点的层数等于其父结点的层数加1。
子树:在树形结中,以某结点的一个子结点为根构成的树称为该结点的一棵子树。
如:上图中,结点R有4棵子树,它们分别以K、P、Q、D为根结点;结点P 有1棵子树,其根结点为N;结点T有3棵子树,它们分别以W、Z、A为根结点。
在树形结构中,子树间互不相交,叶子结点没有子树。
森林:森林是M(M≥0)棵互不相交的树的集合。
删去一棵树的根,就得到一个森林;反之,加上一个结点作树根,森林就变为一棵树。
1.4.2二叉树(1) 二叉树的特点①非空二叉树只有一个根结点。
②二叉树中的每个结点,最多有两棵子树,分另称为该结点的左子树与右子树。
当一个结点即没有左子树也没有右子树时,该结点就是叶子结点。
在下面的图中,左面是只有根结点的二叉树,右面是深度为4的二叉树:(2) 满二叉树与完全二叉树1) 满二叉树:满二叉树是指除最后一层外,每一层上的所有结点都有两个子结点。
就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2i-1(k≥1)个结点,且深度为k的满二叉树有2k-1(k≥1)个结点。
在下图中分别是深度为2、3、4的满二叉树:满二叉树中不存在度数为1的结点,每个分支结点均有两棵深度相同的子树,且叶子结点都在最下一层。
2) 完全二叉树:若一棵二叉树最多只有最下面的两层上结点的度数可以小于2,并且最下一层上的所有结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树。
在下图的4棵二叉树中,分别是深度为3和4的完全二叉树:满二叉树是完全二叉树,完全二叉树不一定是满二叉树。
在满二叉树的最下一层上,从最右边开始连续删去若干结点后得到的二叉树仍然是一棵完全二叉树。
在完全二叉树中,若某个结点没有左子结点,则它一定没有右子结点,即该结点必是叶子结点。
(3) 二叉树的性质假设定义根结点的层数为1(注意:有些资料中规定根结点的层数为0)。
性质1:在二叉树的第i层上,最多有2i-1(i≥1)个结点。
性质2:深度为k的二叉树最多有2k-1(k≥1)个结点。
性质3:在任意二叉树中,若度为0的结点(即叶子结点)的个数为n0,度为2的结点的个数为n2,则:n0= n2+1(对于完全二叉树还有如下属性)性质4:具有n个结点的完全二叉树,其深度为[log2n]+1。
注:[log2n]表示取log2n的整数部分。
性质5:如果将一棵有n个结点的完全二叉树自顶向下、同一层自左向右连续给结点编号1、2、3、…、n,则对于任意结点i(1≤i≤n)有如下结论:1) 如果i=1,此结点为根结点,无前驱(即无父结点);如果i>1,则该结点的父结点编号为Int(i/2)。
也可表示成[i/2],都表示取整数。
2) 如果2i>n,则结点i无左子结点,显然也没有右子结点,是叶子结点。
如果2i≤n,则结点i的左子结点是编号为2i的结点。
3) 如果2i+1>n,则结点i无右子结点。
如果2i+1≤n,则结点i的右子结点的编号为2i+1。
(4) 二叉树的遍历二叉树的遍历就是遵从某种次序,访问二叉树中的所有结点,使得每个结点仅被访问一次。
一棵非空二叉树是由根结点、左子树和右子树三部分组成。
因此遍历一棵非空二叉树的问题就可以分解为三项“子任条”:①访问根结点(假设用D表示)。
②遍历左子树(假设用L表示)。
③遍历右子树(假设用R表示)。
在遍历二叉树的过程中,一般先遍历左子树,然后再遍历右子树。
在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可分为三种:前序遍历(DLR)、中序遍历(LDR)、后序遍历(LRD)。
以下图中的二叉树为例:前序遍历(DLR):首先访问根结点,然后遍历左子树,最后遍历右子树。
在遍历左、右子树时,仍然先访问子树的根结点,然后遍历其左子树,最后遍历其右子树。
即,前序遍历是指访问所有的根结点(包括子树的根结点)都在遍历其左、右子树之前。
前序遍历的操作:若二叉树为空,则结束反返回。
否则:①访问根结点②前序遍历左子树③前序遍历右子树如,对上图中的二叉树进行前序遍历的结果是:F C A D B E G H P 中序遍历(LDR):首先遍历左子树,然后访问根结点,最后遍历右子树。
在遍历左、右子树时,仍然先遍历其左子树,然后访问子树的根结点,最后遍历其右子树。
即,中序遍历是指访问所有的根结点(包括子树的根结点)都在遍历其左子树之后、在遍历其右子树之前。