描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787519248154丛书名: 南方电网公司招聘考试辅导用书
编辑推荐
《中公版·2019南方电网公司招聘考试辅导用书:计算机类专业知识》本书具有三大特色:
1.精心研发,紧随大纲。紧随南方电网公司招聘考试大纲,包含7大板块细分64小节,体例科学。内容包含数据结构与算法、数据库系统、计算机网络、操作系统、计算机组成原理、软件工程、C语言七大块知识。
2.双色印刷,重点突出。条例清晰、重点突出的讲解南方电网公司招聘考试计算机专业知识内容。
3.超值服务,随时陪伴。购书享有移动自习室配套全方位服务——核心考点轻松学+在线题库任意练+考友圈答疑解惑+视频直播免费看。
1.精心研发,紧随大纲。紧随南方电网公司招聘考试大纲,包含7大板块细分64小节,体例科学。内容包含数据结构与算法、数据库系统、计算机网络、操作系统、计算机组成原理、软件工程、C语言七大块知识。
2.双色印刷,重点突出。条例清晰、重点突出的讲解南方电网公司招聘考试计算机专业知识内容。
3.超值服务,随时陪伴。购书享有移动自习室配套全方位服务——核心考点轻松学+在线题库任意练+考友圈答疑解惑+视频直播免费看。
内容简介
《中公版·2019南方电网公司招聘考试辅导用书:计算机类专业知识》本书依据计算类考试大纲精心研发而成。参与本书编写的师资团队强大,编者具有丰富的专业教学辅导经验,对考试规律研究颇深。该团队在认真研究近几年南方电网公司招聘考试大纲的基础上编写本套图书。本书的编写目标是让考生在尽可能短的时间内全面了解南方电网计算机类专业考试内容,夯实基础,提升能力。
目 录
章数据结构与算法
节线性表
第二节栈和队列
第三节串
第四节数组和广义表
第五节树和二叉树
第六节图
第七节动态存储管理
第八节查找
第九节内部排序
第十节外部排序
第十一节文件
第二章数据库系统
节数据库系统导论
第二节数据模型与数据库系统结构
第三节关系数据库
第四节关系数据库标准语言SQL
第五节数据库安全性
第六节数据库完整性
第七节关系数据理论
第八节数据库设计
第九节关系查询处理和查询优化
第十节事务管理(并发控制、数据库恢复技术)
第十一节新数据库技术(分布式、对象关系、XML)
第三章计算机网络
节基本概念
第二节物理层
第三节数据链路层
第四节网络层
第五节运输层
第六节应用层
第七节网络安全
第八节无线网络与移动网络
第四章操作系统
节基本概念
第二节进程管理
第三节处理机调度
第四节存储器管理
第五节设备管理
第六节文件管理
第五章计算机组成原理
节基本概念
第二节数据的机器层次表示
第三节指令系统
第四节数值的机器运算
第五节存储系统和结构
第六节中央处理器
第七节总线系统
第八节外部设备
第九节输入输出系统
第六章软件工程
节基本概念
第二节可行性分析与项目立项
第三节需求分析
第四节总体设计
第五节详细设计
第六节软件测试
第七节软件维护
第八节面向对象的方法学
第七章C语言
节基本概念
第二节数据类型、运算符与表达式
第三节顺序结构
第四节选择结构
第五节循环结构
第六节数组
第七节函数
第八节指针
第九节结构体与共用体
第十节位运算
第十一节文件
节线性表
第二节栈和队列
第三节串
第四节数组和广义表
第五节树和二叉树
第六节图
第七节动态存储管理
第八节查找
第九节内部排序
第十节外部排序
第十一节文件
第二章数据库系统
节数据库系统导论
第二节数据模型与数据库系统结构
第三节关系数据库
第四节关系数据库标准语言SQL
第五节数据库安全性
第六节数据库完整性
第七节关系数据理论
第八节数据库设计
第九节关系查询处理和查询优化
第十节事务管理(并发控制、数据库恢复技术)
第十一节新数据库技术(分布式、对象关系、XML)
第三章计算机网络
节基本概念
第二节物理层
第三节数据链路层
第四节网络层
第五节运输层
第六节应用层
第七节网络安全
第八节无线网络与移动网络
第四章操作系统
节基本概念
第二节进程管理
第三节处理机调度
第四节存储器管理
第五节设备管理
第六节文件管理
第五章计算机组成原理
节基本概念
第二节数据的机器层次表示
第三节指令系统
第四节数值的机器运算
第五节存储系统和结构
第六节中央处理器
第七节总线系统
第八节外部设备
第九节输入输出系统
第六章软件工程
节基本概念
第二节可行性分析与项目立项
第三节需求分析
第四节总体设计
第五节详细设计
第六节软件测试
第七节软件维护
第八节面向对象的方法学
第七章C语言
节基本概念
第二节数据类型、运算符与表达式
第三节顺序结构
第四节选择结构
第五节循环结构
第六节数组
第七节函数
第八节指针
第九节结构体与共用体
第十节位运算
第十一节文件
在线试读
一、基本概念
(一)数据结构基本概念
1.数据
数据是输入到计算机中并能够被计算机程序识别和处理的符号的总称。例如,整数、字符串都是数据。
2.数据元素
数据元素是数据的基本单位。例如,一本书的书目信息就是一个数据元素。
3.数据项
一个数据元素可以由多个数据项来组成。例如,一本书的书目信息中的每一项(如书名、出版日期等)都可以叫作数据项,它们组合起来构成一个数据元素。数据项又可称为字段、域或属性。
4.数据对象
数据对象是性质相同的数据元素的集合。例如,大写字母就是一个数据对象,大写字母数据对象是集合{‘A’,‘B’,…,‘Z’}。
5.数据结构
(1)定义
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(2)分类
①数据的逻辑结构
a.定义
数据的逻辑结构是指数据元素之间的逻辑关系,数据元素的逻辑结构与数据元素在计算机中存储的位置无关。
b.分类
集合:集合中任何两个数据元素之间都没有逻辑关系,只是属于同一个集合(如图1-1-1所示)。
线性结构:线性结构中的数据元素之间存在“一对一”的关系(如图1-1-2所示)。
树形结构:树形结构中的数据元素之间存在“一对多”的关系(如图1-1-3所示)。
图状结构:图状结构中的数据元素之间存在“多对多”的关系(如图1-1-4所示)。
图1-1-1集合图示图1-1-2线性结构图示
图1-1-3树形结构图示图1-1-4图状结构图示
②数据的存储结构
a.定义
数据的存储结构是指数据元素及其关系在计算机中的表示,或者说是数据的逻辑结构在计算机存储空间中的存放形式。
b.分类
顺序存储:逻辑上相邻的节点在物理位置上也相邻。使用顺序存储结构可以随机存取表中元素,但是在进行插入或删除操作时需要移动元素。
链式存储:不要求逻辑上相邻的节点在物理位置上也相邻。链式存储结构比顺序存储结构的存储密度小,查找速度也相对较慢,但是插入和删除操作灵活。
索引存储:索引存储在存储节点的同时需要建立附加的索引表。
散列存储:散列存储根据节点的关键字直接计算出该节点的存储地址。
6.算法
(1)定义
算法是对特定问题求解步骤的一种描述,它是一系列解决问题的清晰指令。
(2)特征
①有穷性:指算法必须在执行有穷步之后终止,即一个算法的操作步骤是有限的。
②确定性:指算法中的每一条指令都必须有确切的含义,并且对于特定的输入有特定的输出。
③输入:算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
④输出:算法有一个或多个输出,这些输出是同输入有某些特定关系的量。
⑤可行性:算法是能够执行的,且算法中每一条运算都必须是足够基本的,也就是说算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
(3)算法的评定
①健壮性:指算法对不合法输入的处理能力。当输入的数据非法时,算法也能做出反应或适当的处理。
②可读性:算法可以被阅读者理解,可读性好有助于理解算法。
③正确性:算法应满足具体问题的要求,正确性是评定一个算法优劣的重要标准。
④空间复杂度:空间复杂度指的是执行这个算法所需要的存储空间。
⑤时间复杂度:时间复杂度指的是执行算法所需要的计算工作量。时间复杂度的计算方法如下:
a.确定算法中的基本操作以及问题的规模。其中基本操作指的是它的执行次数和算法的执行时间成正比的操作,简单地说,当基本操作执行完的时候,算法也就基本结束了,多数情况下,基本操作是深层循环内的语句。
b.根据基本操作执行情况计算出n的规模函数f(n),所以,时间复杂度为T(n)=O(f(n)中增长快的项/这一项的系数)。
在计算时间复杂度时,有的算法中输入的数据规模和数据本身都会影响基本操作的执行次数。对于这种情况,如果题目中没有特殊要求,一般按照坏情况来计算,也就是依照使得基本操作执行次数多的输入来计算时间复杂度。
例题1求出以下算法的时间复杂度。()
voidexample(intn)
{
inti=1,j=100;
while(i {
++j;
i+=2;
}
}
A.O(n/2)B.O(n2)
C.O(n)D.O()
【答案】C。解析:算法中只有一个while循环,取循环内部的语句作为基本操作,++j和i+=2都可以作为基本操作,由循环条件i<n可知,循环执行的次数和参数n有关,因此参数n就是问题规模n。当i<n时,会一直执行循环语句,假设i在自增m次后结束循环,则有i=1+2m,此时有1+2m+X=n(因为当i的值大于n时循环结束,此处用X来将1+2m修正为n,X为常数,不会影响终的时间复杂度计算),得到m=(n-1-X)/2,即f(n)=(n-1-X)/2,其中增长快的项是n/2,将该项系数化为1,得到时间复杂度为T(n)=O(n)。
例题2分析以下算法的时间复杂度。()
voidexample(intn)
{
inti,j,sum=0;
for(i=1;i for(j=i;j sum++;
}
A.O(n)B.O(n2)
C.O(1)D.O(n2/2)
【答案】B。解析:算法中深层的语句是双层循环的内部语句,并且++j处于内层循环,因此++j是基本操作,显然n为规模。可以计算出语句++j;的执行次数为f(n)=n(n-1)/2,在f(n)中变化快的项为n2/2,因此,时间复杂度为T(n)=O(n2)。
(二)线性表的基本概念
线性表是基本、简单也是常用的一种数据结构。
1.线性表是由n(n≥0)个类型相同的数据元素组成的有限序列。
2.线性表的长度:线性表中元素的个数。
3.空表:长度为0的线性表。
(三)线性表的特点
1.线性表中一定存在的“元素”。
2.线性表中一定存在的“后元素”。
3.除后一个元素之外,均有的后继(后件)。
4.除个元素之外,均有的前驱(前件)。
(四)线性表的表示方式
1.线性表的顺序表示
线性表中的数据元素是用一组地址连续的存储单元依次存储的。
2.线性表的链式表示
(1)线性链表
用一组任意的存储单元存储线性表的数据元素,存储单元不一定是连续的,可以连续,也可以不连续。
(2)循环链表
循环链表中后一个节点的后继指针指向头节点,使整个链表形成一个环形。
(3)双向链表
在双向链表中,每个节点有两个指针域,一个指向它的直接后继,另一个指向它的直接前驱。
二、线性表的存储结构和实现
(一)线性表的顺序存储结构和实现
线性表的顺序存储结构是用一组地址连续的存储单元依次存储线性表中的各个元素。在顺序存储结构的线性表中,逻辑结构上相邻的数据元素在物理存储单元中也相邻。
1.元素存储地址的计算
假设线性表中有n个元素,每个元素占m个单元,个元素的地址为loc(a1),求第i个元素的地址,则第i个元素的地址loc(ai)的计算公式如下:
loc(ai)=loc(a1)+(i-1)×m。
例题已知一个一维数组采用顺序存储结构存储元素,每个元素占用4个存储单元,第8个元素的地址为144,那么,个元素的地址是()。
A.108B.180
C.116D.112
【答案】C。解析:从题干中可以提取出这样几个信息,每个元素占用4个存储单元,并且第8个元素的地址为144,则个元素的地址是144-(8-1)×4=116。
2.存储结构
线性表的顺序存储结构如图1-1-5所示。
数据元素在线性表中的位置内存状态
图1-1-5线性表的顺序存储结构示意图
3.基本操作
(1)插入
在顺序表中插入一个新元素,若要求插入后仍保持各元素原来的相互位置关系,就要做元素的成块移动(如图1-1-6所示)。
序号数据元素序号数据元素
图1-1-6线性表插入26前后的状态
(2)删除
在顺序表中删除一个元素,若要保持表中各元素原来的相互位置关系,就要做元素的成块移动(如图1-1-7所示)。
序号数据元素序号数据元素
图1-1-7线性表删除19前后的状态
(二)线性表的链式存储结构和实现
1.线性链表
(1)节点的定义
线性链表的节点结构如图1-1-8所示。
图1-1-8线性链表的节点结构
data:数据域,存放数据
next:指针域,存放位置
typedefstructListNode{
intdata;//数据类型可以根据用户需求变化
structListNode*next;//指针域,用来指向下一个节点,若是后一个节点,则为NULL
}ListNode,*LinkList;
(2)带头节点的单链表
①存储结构
带头节点的单链表的存储结构如图1-1-9所示,带头节点的空表的存储结构如图1-1-10所示。
图1-1-9带头节点的单链表图示
图1-1-10带头节点的空表图示
②判空
设头指针为L,则表为空表的判断条件为:
L->next==NULL;
(3)不带头节点的单链表
①存储结构
不带头节点的单链表的存储结构如图1-1-11所示。
图1-1-11不带头节点的单链表图示
②判空
设头指针为L,则表为空表的判断条件为:
L==NULL;
(4)线性链表的操作
①线性链表的插入操作
假设,在p节点后插入节点s,如图1-1-12所示,则操作语句如下:
s->next=p->next;
p->next=s;
图1-1-12在节点p之后插入节点s
②线性链表的删除操作
假设,删除p节点的后一个节点,如图1-1-13、1-1-14所示,则操作语句如下:
q=p->next;
p->next=q->next;
free(q);
图1-1-13删除节点q前
图1-1-14删除节点q后
2.循环链表
(1)定义
循环链表又称循环单链表,是单链表的另一种形式,它是一个首尾相接的链表。循环链表是将单链表的后一个节点的next指针域指向头节点或线性表中的个节点,这样就得到了循环单链表。
(2)循环链表的几种形态
带头节点的空循环链表结构如图1-1-15所示,带头节点的循环单链表结构如图1-1-16所示,采用尾指针的循环单链表结构如图1-1-17所示。
(一)数据结构基本概念
1.数据
数据是输入到计算机中并能够被计算机程序识别和处理的符号的总称。例如,整数、字符串都是数据。
2.数据元素
数据元素是数据的基本单位。例如,一本书的书目信息就是一个数据元素。
3.数据项
一个数据元素可以由多个数据项来组成。例如,一本书的书目信息中的每一项(如书名、出版日期等)都可以叫作数据项,它们组合起来构成一个数据元素。数据项又可称为字段、域或属性。
4.数据对象
数据对象是性质相同的数据元素的集合。例如,大写字母就是一个数据对象,大写字母数据对象是集合{‘A’,‘B’,…,‘Z’}。
5.数据结构
(1)定义
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
(2)分类
①数据的逻辑结构
a.定义
数据的逻辑结构是指数据元素之间的逻辑关系,数据元素的逻辑结构与数据元素在计算机中存储的位置无关。
b.分类
集合:集合中任何两个数据元素之间都没有逻辑关系,只是属于同一个集合(如图1-1-1所示)。
线性结构:线性结构中的数据元素之间存在“一对一”的关系(如图1-1-2所示)。
树形结构:树形结构中的数据元素之间存在“一对多”的关系(如图1-1-3所示)。
图状结构:图状结构中的数据元素之间存在“多对多”的关系(如图1-1-4所示)。
图1-1-1集合图示图1-1-2线性结构图示
图1-1-3树形结构图示图1-1-4图状结构图示
②数据的存储结构
a.定义
数据的存储结构是指数据元素及其关系在计算机中的表示,或者说是数据的逻辑结构在计算机存储空间中的存放形式。
b.分类
顺序存储:逻辑上相邻的节点在物理位置上也相邻。使用顺序存储结构可以随机存取表中元素,但是在进行插入或删除操作时需要移动元素。
链式存储:不要求逻辑上相邻的节点在物理位置上也相邻。链式存储结构比顺序存储结构的存储密度小,查找速度也相对较慢,但是插入和删除操作灵活。
索引存储:索引存储在存储节点的同时需要建立附加的索引表。
散列存储:散列存储根据节点的关键字直接计算出该节点的存储地址。
6.算法
(1)定义
算法是对特定问题求解步骤的一种描述,它是一系列解决问题的清晰指令。
(2)特征
①有穷性:指算法必须在执行有穷步之后终止,即一个算法的操作步骤是有限的。
②确定性:指算法中的每一条指令都必须有确切的含义,并且对于特定的输入有特定的输出。
③输入:算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
④输出:算法有一个或多个输出,这些输出是同输入有某些特定关系的量。
⑤可行性:算法是能够执行的,且算法中每一条运算都必须是足够基本的,也就是说算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
(3)算法的评定
①健壮性:指算法对不合法输入的处理能力。当输入的数据非法时,算法也能做出反应或适当的处理。
②可读性:算法可以被阅读者理解,可读性好有助于理解算法。
③正确性:算法应满足具体问题的要求,正确性是评定一个算法优劣的重要标准。
④空间复杂度:空间复杂度指的是执行这个算法所需要的存储空间。
⑤时间复杂度:时间复杂度指的是执行算法所需要的计算工作量。时间复杂度的计算方法如下:
a.确定算法中的基本操作以及问题的规模。其中基本操作指的是它的执行次数和算法的执行时间成正比的操作,简单地说,当基本操作执行完的时候,算法也就基本结束了,多数情况下,基本操作是深层循环内的语句。
b.根据基本操作执行情况计算出n的规模函数f(n),所以,时间复杂度为T(n)=O(f(n)中增长快的项/这一项的系数)。
在计算时间复杂度时,有的算法中输入的数据规模和数据本身都会影响基本操作的执行次数。对于这种情况,如果题目中没有特殊要求,一般按照坏情况来计算,也就是依照使得基本操作执行次数多的输入来计算时间复杂度。
例题1求出以下算法的时间复杂度。()
voidexample(intn)
{
inti=1,j=100;
while(i {
++j;
i+=2;
}
}
A.O(n/2)B.O(n2)
C.O(n)D.O()
【答案】C。解析:算法中只有一个while循环,取循环内部的语句作为基本操作,++j和i+=2都可以作为基本操作,由循环条件i<n可知,循环执行的次数和参数n有关,因此参数n就是问题规模n。当i<n时,会一直执行循环语句,假设i在自增m次后结束循环,则有i=1+2m,此时有1+2m+X=n(因为当i的值大于n时循环结束,此处用X来将1+2m修正为n,X为常数,不会影响终的时间复杂度计算),得到m=(n-1-X)/2,即f(n)=(n-1-X)/2,其中增长快的项是n/2,将该项系数化为1,得到时间复杂度为T(n)=O(n)。
例题2分析以下算法的时间复杂度。()
voidexample(intn)
{
inti,j,sum=0;
for(i=1;i for(j=i;j sum++;
}
A.O(n)B.O(n2)
C.O(1)D.O(n2/2)
【答案】B。解析:算法中深层的语句是双层循环的内部语句,并且++j处于内层循环,因此++j是基本操作,显然n为规模。可以计算出语句++j;的执行次数为f(n)=n(n-1)/2,在f(n)中变化快的项为n2/2,因此,时间复杂度为T(n)=O(n2)。
(二)线性表的基本概念
线性表是基本、简单也是常用的一种数据结构。
1.线性表是由n(n≥0)个类型相同的数据元素组成的有限序列。
2.线性表的长度:线性表中元素的个数。
3.空表:长度为0的线性表。
(三)线性表的特点
1.线性表中一定存在的“元素”。
2.线性表中一定存在的“后元素”。
3.除后一个元素之外,均有的后继(后件)。
4.除个元素之外,均有的前驱(前件)。
(四)线性表的表示方式
1.线性表的顺序表示
线性表中的数据元素是用一组地址连续的存储单元依次存储的。
2.线性表的链式表示
(1)线性链表
用一组任意的存储单元存储线性表的数据元素,存储单元不一定是连续的,可以连续,也可以不连续。
(2)循环链表
循环链表中后一个节点的后继指针指向头节点,使整个链表形成一个环形。
(3)双向链表
在双向链表中,每个节点有两个指针域,一个指向它的直接后继,另一个指向它的直接前驱。
二、线性表的存储结构和实现
(一)线性表的顺序存储结构和实现
线性表的顺序存储结构是用一组地址连续的存储单元依次存储线性表中的各个元素。在顺序存储结构的线性表中,逻辑结构上相邻的数据元素在物理存储单元中也相邻。
1.元素存储地址的计算
假设线性表中有n个元素,每个元素占m个单元,个元素的地址为loc(a1),求第i个元素的地址,则第i个元素的地址loc(ai)的计算公式如下:
loc(ai)=loc(a1)+(i-1)×m。
例题已知一个一维数组采用顺序存储结构存储元素,每个元素占用4个存储单元,第8个元素的地址为144,那么,个元素的地址是()。
A.108B.180
C.116D.112
【答案】C。解析:从题干中可以提取出这样几个信息,每个元素占用4个存储单元,并且第8个元素的地址为144,则个元素的地址是144-(8-1)×4=116。
2.存储结构
线性表的顺序存储结构如图1-1-5所示。
数据元素在线性表中的位置内存状态
图1-1-5线性表的顺序存储结构示意图
3.基本操作
(1)插入
在顺序表中插入一个新元素,若要求插入后仍保持各元素原来的相互位置关系,就要做元素的成块移动(如图1-1-6所示)。
序号数据元素序号数据元素
图1-1-6线性表插入26前后的状态
(2)删除
在顺序表中删除一个元素,若要保持表中各元素原来的相互位置关系,就要做元素的成块移动(如图1-1-7所示)。
序号数据元素序号数据元素
图1-1-7线性表删除19前后的状态
(二)线性表的链式存储结构和实现
1.线性链表
(1)节点的定义
线性链表的节点结构如图1-1-8所示。
图1-1-8线性链表的节点结构
data:数据域,存放数据
next:指针域,存放位置
typedefstructListNode{
intdata;//数据类型可以根据用户需求变化
structListNode*next;//指针域,用来指向下一个节点,若是后一个节点,则为NULL
}ListNode,*LinkList;
(2)带头节点的单链表
①存储结构
带头节点的单链表的存储结构如图1-1-9所示,带头节点的空表的存储结构如图1-1-10所示。
图1-1-9带头节点的单链表图示
图1-1-10带头节点的空表图示
②判空
设头指针为L,则表为空表的判断条件为:
L->next==NULL;
(3)不带头节点的单链表
①存储结构
不带头节点的单链表的存储结构如图1-1-11所示。
图1-1-11不带头节点的单链表图示
②判空
设头指针为L,则表为空表的判断条件为:
L==NULL;
(4)线性链表的操作
①线性链表的插入操作
假设,在p节点后插入节点s,如图1-1-12所示,则操作语句如下:
s->next=p->next;
p->next=s;
图1-1-12在节点p之后插入节点s
②线性链表的删除操作
假设,删除p节点的后一个节点,如图1-1-13、1-1-14所示,则操作语句如下:
q=p->next;
p->next=q->next;
free(q);
图1-1-13删除节点q前
图1-1-14删除节点q后
2.循环链表
(1)定义
循环链表又称循环单链表,是单链表的另一种形式,它是一个首尾相接的链表。循环链表是将单链表的后一个节点的next指针域指向头节点或线性表中的个节点,这样就得到了循环单链表。
(2)循环链表的几种形态
带头节点的空循环链表结构如图1-1-15所示,带头节点的循环单链表结构如图1-1-16所示,采用尾指针的循环单链表结构如图1-1-17所示。






评论
还没有评论。