二级公共基础知识总结 重点
- 格式:doc
- 大小:91.00 KB
- 文档页数:16
第一章数据结构与算法笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念.疑难解答:算法的工作量用什么来计算?算法的工作量用算法所执行的基本运算次数来计算,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模。
考点3 数据结构的定义考试链接:考点3在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为识记内容,读者还应该识记数据的逻辑结构和存储结构的概念.考点4 线性结构与非线性结构考试链接:考点4在笔试考试中,虽然说不是考试经常考查的内容,但读者还是对此考点有所了解,在笔试考试中出现的几率为,主要是以填空题出现的形式出现,分值为2分,此考点为识记内容。
疑难解答:空的数据结构是线性结构还是非线性结构?一个空的数据结构究竟是属于线性结构还是属于非线性结构,这要根据具体情况来确定。
如果对该数据结构的算法是按线性结构的规则来处理的,则属于线性结构;否则属于非线性结构。
考点5 栈及其基本运算考试链接:考点5在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,主要是以选择的形式出现,分值为2分,此考点为重点掌握内容,读者应该掌握栈的运算.:栈是按照"先进后出"或”后进先出”的原则组织数据,但是出栈方式有多种选择,在考题中经常考查各种不同的出栈方式。
二级公共基础知识总结(30分:10选择+5填空)第一章数据结构与算法一.算法1.概念:是解题方案的准确而完整的描述。
算法不等于程序,也不等于计算方法。
2.基本特征:(1)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(2)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;(3)可行性,算法原则上能够精确地执行;(4)拥有足够的情报。
3.基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
4.指令系统:一个计算机系统能执行的所有指令的集合。
5.基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
6.基本控制结构:顺序结构、选择结构、循环结构。
7.基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。
8.算法复杂度(算法效率的度量)(1)算法时间复杂度:指执行算法所需要的计算工作量。
即算法执行过程中所需要的基本运算次数。
通常,一个算法所用的时间包括编译时间和运行时间。
(2)算法空间复杂度:指执行这个算法所需要的内存空间。
包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间。
二.数据结构1.数据的基本单位是数据元素2.数据结构:指相互有关联的数据元素的集合。
3.数据的存储结构(也称数据物理结构):数据的逻辑结构在计算机存储空间中的存放形式4.数据的存储结构有顺序、链接、索引、散列。
5.数据结构类型(按各元素之间前后件关系的复杂度划分):(1)线性结构的条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。
(2)非线性结构:不满足线性结构条件的数据结构。
6.线性结构:(1)线性表①记录:由若干项数据元素组成的数据元素②文件:由多个记录构成的线性表。
③线性表的顺序存储结构基本特点:a)线性表中所有元素所占的存储空间是连续的;b)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的④线性链表(线性表的链式存储结构)数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
全国计算机等级考试二级教程——公共基础知识一、操作系统操作系统是计算机系统中最基本的软件,其作用是管理、协调并控制各类计算机资源,提供给应用程序一个运行环境。
操作系统的特点: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.1 算法算法不等于程序,也不等计算机方法,程序编制不也许优于算法设计。
算法基础特性:是一组严谨地定义运算顺序规则,每一个规则所有是有效,是明确,此顺序将在有限次数下终止。
特性包含: (1)可行性;(2)拟定性,算法中每一环节所有必需有明拟定义,不充许有模棱两可解释,不许可有多义性;(3)有穷性,算法必需能在有限时间内做完,即能在实行有限个环节后终止,包含合理实行时间含义; (4)拥有足够情报。
算法基础要素:一是对数据对象运算和操作;二是算法控制结构。
指令系统:一个计算机系统能实行所有指令集合。
基础运算包含:算术运算、逻辑运算、关系运算、数据传输。
算法基础设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法时间复杂度是指实行算法所需要计算工作量。
算法空间复杂度是指实行这个算法所需要内存空间。
1.2 数据结构基础基础概念 数据结构研究三个方面:(1(2(3)对多种数据结构进行运算。
数据结构是指互相相关联数据元素集合。
数据逻辑结构包含: (1)表达数据元素信息;(2)表达各数据元素之间前后件关系。
数据存放结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件数据结构。
1.3 线性表及其顺序存放结构线性。
非空线性表结构特性:(1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an ,它无后件;(3)除根结点和终端结点外,其它所有结点有且只有一个前件,也有且只有一个后件。
结点个数nn=0线性表顺序存放结构具有以下两个基础特点: (1)线性表中所有元素所占存放空间是连续;(2)线性表中各数据元素在存放空间中是按逻辑顺序依次存放。
ai 存放地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素地址,k代表每个元素占字节数。
二级公共基础知识完整版公共基础知识是一门涵盖众多领域的综合性学科,对于我们提升综合素质和应对各种考试都具有重要意义。
首先,我们来谈谈政治方面的基础知识。
政治是公共基础知识中的重要组成部分。
了解国家的政治制度、政党制度以及政治运行机制是必不可少的。
我国实行的是人民代表大会制度,这是我国的根本政治制度,保障了人民当家作主的权利。
同时,中国共产党领导的多党合作和政治协商制度也是我国政治制度的特色之一,它充分发挥了各民主党派和无党派人士在国家政治生活中的作用。
在法律方面,了解基本的法律概念和法律体系至关重要。
宪法作为国家的根本大法,具有最高的法律效力,规定了国家的根本制度和公民的基本权利义务。
此外,民法、刑法、行政法等部门法也与我们的日常生活息息相关。
比如,民法调整平等主体之间的人身关系和财产关系,当我们签订合同、处理财产纠纷时,就需要依据民法的相关规定。
经济知识也是公共基础知识的重要板块。
宏观经济和微观经济的概念及相关原理需要我们掌握。
宏观经济中,了解经济增长、通货膨胀、失业等经济现象的原因和应对策略,对于理解国家的经济政策具有重要意义。
微观经济方面,掌握供求关系、市场竞争等基本原理,有助于我们分析企业的经营决策和市场行为。
文化常识同样不可或缺。
包括我国的传统文化、现代文化以及世界文化。
我国有着悠久灿烂的传统文化,如儒家思想、诗词歌赋、书法绘画等,这些都是中华民族的瑰宝。
同时,了解现代文化的发展趋势和多元的世界文化,有助于我们开阔视野,增强文化交流与融合的能力。
科技知识在当今时代显得尤为重要。
从信息技术的飞速发展到生物技术的不断突破,科技的进步正在深刻地改变着我们的生活。
了解常见的科技成果、科技创新的趋势以及科技对社会发展的影响,能够让我们更好地适应这个科技日新月异的时代。
历史知识也是公共基础知识的一部分。
通过学习历史,我们可以了解国家和世界的发展脉络,从古代文明的兴衰到近代社会的变革,从重大历史事件到重要历史人物,历史为我们提供了宝贵的经验和启示。
全国计算机全国计算机二级公共基础知识二级公共基础知识二级公共基础知识((重点部分重点部分))第一章 数据结构基础1.1算法1.1.1 算法的基本概念算法是解题方案的准确而完整的描述算法是解题方案的准确而完整的描述,,它不等于程序它不等于程序,,也不等计算方法也不等计算方法。
算法的基本特征可行性(effectiveness) 确定性(definiteness) 有穷性(finiteness) 拥有足够的情报 算法的时间复杂度执行算法所需要的计算工作量 与下列因素有关:书写算法的程序设计语言 ,编译产生的机器语言,代码质量 机器执行指令的速度 ,问题的规模 问题的规模函数 算法的工作量=f(n)算法中基本操作重复执行的频率T(n),是问题规模n 的某个函数f(n),记作记作::T(n)=O(f(n)) 记号“O ”读作“大O ”。
表示随问题规模n 的增加,算法执行时间的增长率和f(n)相应增加。
常见算法复杂度常见算法复杂度::O(1):常数阶 O(n):作线性阶 O(n2):平方阶 O(n3):立方阶 O(logn):对数阶 O(2n):指数阶算法的空间复杂度算法执行过程中所需的最大存储空间 存储量包括以下三部分算法程序所占的空间 ,输入的初始数据所占的存储空间 ,算法执行过程中所要的额外空间1.2 数据结构的基本概念数据的逻辑结构对数据元素之间的逻辑关系的描述只抽象地反映数据元素之间的逻辑关系,与计算机中的存储无关 数据的存储结构数据的逻辑结构在计算机存储空间中的存放形式 常用的存储结构:顺序, 链式, 索引一种数据结构可根据需要采用不同的存储结构。
采用不同的存储结构,其数据处理的效率是不同 线性结构如果一个非空数据结构满足下列两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。
常见的线性结构有:线性表、栈与队列、线性链表非线性结构1.数据的逻辑结构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.计算机的定义计算机是一种能够接收、存储、处理和输出数据的高智能电子设备。
2.计算机的分类计算机可以分为五大类:超级计算机、大型机、中型机、小型机和微型计算机。
3.计算机的性能指标计算机的性能指标主要包括速度、存储容量、输入输出设备、价格等。
4.计算机的组成计算机由硬件和软件两部分组成。
硬件包括中央处理器(CPU)、存储器、输入输出设备等。
软件包括系统软件和应用软件。
二、计算机网络1.计算机网络的定义计算机网络是指连接在一起的两个或两个以上的计算机系统,通过通信设备实现数据共享、信息传递等功能。
2.计算机网络的分类计算机网络可以分为局域网(LAN)、城域网(MAN)、广域网(WAN)等。
3.计算机网络的协议计算机网络通讯中使用的协议主要有TCP/IP协议、UDP协议、HTTP协议等。
4.常见网络应用常见的网络应用包括电子邮件、网上购物、在线视频、在线游戏等。
三、操作系统及其应用1.操作系统的定义操作系统是计算机系统中的核心软件,它负责管理和协调计算机系统硬件和软件资源,提供更高层次的对资源的管理。
2.操作系统的分类操作系统可以分为分时操作系统、批处理操作系统、实时操作系统等。
3.常见操作系统及其特点常见的操作系统包括Windows、Linux、MacOS等,每种操作系统都有其独特的特点和优点。
4.操作系统的应用操作系统在日常工作和生活中有着广泛的应用,包括办公软件、娱乐软件、数据库软件、操作系统安全等。
四、数据库和相关知识1.数据库的定义数据库是指长期存储在计算机中,按一定的数据结构组织起来,可以被多个用户共享的大量数据的集合。
二级公共基础知识总结请大家认真仔细的背诵该资料,至少要看三遍,划了横线的和 方框的都是重点!第一章 数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制 不可能优于算法的设计。
算法的特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义 性;(3)有穷性,算法必须能在有限的时间内做完,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,(2)在对数据进行处理时,各数据元素在计算机中的(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有 且只有一个根结点;(2)每 一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是 线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
线性表的顺序存储结构具有以下两个基本特点:(1)线 性表中所有元素的所占的存储空间是连续的;(2)线 性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
1.4 栈和队列栈是限定在一端进行插入与删除的线性表。
1、先进后出 FILO;1、支持子程序调用;2、具有记忆功能;3、可以不用顺序存放数据;4、只能够在 top 首部进行操作,bottom 是绝对不动的;1、Rear 指针指向队尾,front 指针指向队头。
全国计算机等级考试二级教程——公共基础知识一、操作系统基础知识1.操作系统是什么?请简要说明其作用和功能。
操作系统是计算机系统中的一种软件,它负责管理和控制计算机硬件资源,并为用户程序提供运行环境。
其主要功能包括进程管理、内存管理、文件系统管理和设备管理等。
2.请列举几种常见的操作系统。
常见的操作系统包括Windows、Linux、Mac OS、Android等。
3.什么是进程?什么是线程?进程是正在执行的程序的实例,是操作系统资源分配与调度的基本单位。
线程是进程中的一个执行单元,一个进程可以包含多个线程。
4.什么是文件系统?文件系统是一种组织和管理计算机存储设备上数据的方法,用于存储和检索文件,并提供对文件的访问控制和保护。
二、计算机网络基础知识1.什么是IP地址?IP地址的作用是什么?IP地址是因特网协议(IP)的网络接口的标识,用于唯一地标识和定位网络上的计算机设备。
IP地址的作用是用于在数据通信中确定源和目标的地址。
2. 请简述Internet的结构。
Internet的结构是由成千上万个相互连接的计算机网络组成的,形成一个全球性的网络。
它使用一种称为互联网协议(IP)的通信协议进行数据传输,通过路由器相互连接。
3.什么是HTTP协议?HTTP协议有哪些特点?HTTP协议(Hypertext Transfer Protocol)是一种用于从服务器传输超文本到客户端的协议。
它的特点包括无连接性、无状态性和可扩展性。
三、数据库基础知识1.什么是数据库?数据库的作用是什么?数据库是存储、管理和组织数据的集合,它提供了一种结构化的方式来组织和存储数据,以便于数据的存取和处理。
数据库的作用是存储和管理大量的数据,并为用户提供数据查找、插入、更新和删除等功能。
2.请简述关系数据库的特点和优点。
关系数据库是一种以关系为基础的数据模型。
它的特点包括数据的结构化、数据间的关系建立、数据的操作和约束等。
关系数据库的优点是数据的一致性、数据的可扩展性、数据的安全性和数据的完整性。
济南大学计算机培训中心 二级公共公共基础知识二级公共基础知识总结第一章数据结构与算法1.1 算法算法:是一组有穷指令集,是解题方案的准确而完整的描述。
通俗地说,算法就是计算机解题的过程。
算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。
算法是一组严谨地定义运算顺序的规则,每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
所以其四个基本特征包括:(1)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(2)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;(3)可行性,算法原则上能够精确地执行;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的三种基本控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。
算法效率的度量—算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度:指执行算法所需要的计算工作量。
即算法执行过程中所需要的基本运算次数。
通常,一个算法所用的时间包括编译时间和运行时间。
算法空间复杂度:指执行这个算法所需要的内存空间。
包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间。
1.2 数据结构的基本概念数据结构:指相互有关联的数据元素的集合。
数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据的逻辑结构应包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系(指逻辑关系,与存储位置无关)。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据物理结构。
数据的存储结构有顺序、链接、索引等。
线性结构的条件,(一个非空数据结构):(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录;由多个记录构成的线性表称为文件。
非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
1-10 济南大学计算机培训中心 二级公共公共基础知识结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
顺序表的运算:查找、插入、删除。
1.4线性链表数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:(1) 用于存储数据元素值,称为数据域;(2) 用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性单链表中,HEAD称为头指针,HEAD=NULL(或0)称为空表。
如果是双项链表的两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:查找、插入、删除。
1.5栈和队列栈:限定在一端进行插入与删除的线性表。
其允许插入与删除的一端称为栈顶,用指针top表示栈顶位置。
不允许插入与删除的另一端称为栈底,用指针bottom表示栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
栈的存储方式有顺序存储和链式存储。
栈的基本运算:(1) 入栈运算,在栈顶位置插入元素;(2) 退栈运算,删除元素(取出栈顶元素并赋给一个指定的变量);(3) 读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化。
队列:指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
用rear指针指向队尾,用front指针指向队头元素的前一个位置。
队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
队列运算包括:(1) 入队运算:从队尾插入一个元素;(2) 退队运算:从队头删除一个元素。
队列的顺序存储结构一般采用队列循环的形式。
循环队列s=0表示队列空;s=1且front=rear表示队列满。
计算循环队列的元素个数:“尾指针减头指针”,若为负数,再加其容量即可。
1.6 树与二叉树树是一种简单的非线性结构,其所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点。
没有前件的结点只有一个,称为树的根结点,简称树的根。
每一个结点可以有多个后件,称为该结点的子结点。
没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。
树的最大层次称为树的深度。
二叉树的特点:(1) 非空二叉树只有一个根结点;(2) 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点深度为m的满二叉树有2m-1个结点。
2-10 济南大学计算机培训中心 二级公共公共基础知识完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。
二叉树基本性质:(1)在二叉树的第k层上,最多有2k-1(k≥1)个结点;(2)深度为m的二叉树最多有2m-1个结点;(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;(4)具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分(5) 具有n个结点的完全二叉树的深度为[log2n]+1;(6) 设完全二叉树共有n个结点。
如果从根结点开始,按层序(每一层从左到右)用自然数1,2,…n给结点进行编号(k=1,2….n),有以下结论:①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);②若2k≤n,则k结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
补充:增加度为1的结点不会影响二叉树的叶子结点数,每增加一个度为2的结点便会增加一个叶子结点,没有度为2的结点时叶子结点数为1。
已知完全二叉树有x个结点,求其叶子结点数:①确定层数为k;②第k层的结点数y=x-(2 k-1-1);③第k-1层的叶子结点数n=2 (k-1)-1-y/2<若y/2有余,则要加1>;④最后y+n。
二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。
二叉树的遍历:(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;(树根在第一,下走不跳结点)(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;(有左先左,再寻根,后找右。
最左边的结点最先遍历,最右边的结点最后遍历)(3)后序遍历(LRD)首先遍历左子树,然后访问遍历右子树,最后访问根结点。
(有左先左,再找右,后寻根,到最右一路上行,树根在最后)小结:逻辑结构可分为线性表和非线性表。
线性表包括栈、队列,其存储方式为顺序存储、链式存储均可。
链式型有:线性链表,带链的栈,带链的队列,循环链表等。
非线性表包括树(二叉树),其存储方式为链式存储。
1.7 查找技术只能使用顺序查找的两种情况:(1)线性表为无序表,不管是顺序存储还是链式存储;(2)表采用链式存储结构,即使是有序线性表。
二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次,而顺序查找需要比较n次。
1.8 排序技术排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
交换类排序法:(1)冒泡排序法,需要比较的次数为n(n-1)/2;(2 ) 快速排序法。
插入类排序法:(1)简单插入排序法,最坏情况需要n(n-1)/2次比较;3-10 济南大学计算机培训中心 二级公共公共基础知识(2) 希尔排序法,最坏情况需要O(n1.5)次比较。
选择类排序法:(1)简单选择排序法, 最坏情况需要n(n-1)/2次比较;(2) 堆排序法,最坏情况需要O(nlog2n)次比较。
相比以上几种(除希尔排序法外),堆排序法的时间复杂度最小。
第二章程序设计基础2.1 程序设计设计方法和风格“清晰第一、效率第二”已成为当今主导的程序设计风格。
形成良好的程序设计风格需注意:(详见书P27)1、源程序文档化;2、数据说明的方法;3、语句的结构;4、输入和输出。
注释分序言性注释和功能性注释。
语句结构清晰第一、效率第二。
2.2 结构化程序设计结构化程序设计方法的四条原则是:1、自顶向下;2、逐步求精;3、模块化;4、限制使用goto语句。
结构化程序的基本结构及特点:(1)顺序结构:一种简单的程序设计,最基本、最常用的结构;(2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;(3)循环结构:又称重复结构,可根据给定条件,判断是否需要重复执行某一相同或类似的程序段。
结构化程序设计的特点:只有一个入口和出口2.3 面向对象的程序设计面向对象的程序设计的首次提出以60年代末挪威奥斯陆大学和挪威计算机中心研制的SIMULA语言为标志。
面向对象方法的优点:(1)与人类习惯的思维方法一致;(2)稳定性好;(3)可重用性好;(4)易于开发大型软件产品;(5)可维护性好。
对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中,对象是由数据的容许的操作组成的封装体,是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。