二级计算机公共基础知识

1.1 数据结构与算法

1.1.1 算法

1.算法的基本概念

1)概念:算法是指一系列解决问题的清晰指令。

2)4个基本特征:可行性、确定性、有穷性、拥有足够的情报。

3)两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时间的顺序)。

4)设计的基本方法:列举法、归纳法、递归法、递推法、减半递推技术和回溯法。

2.算法的复杂度

1)算法的时间复杂度:执行算法所需要的计算工作量。

2)算法的空间复杂度:执行算法所需的内存空间。

1.1.2 数据结构的基本概念

数据结构:相互有关联的数据元素的集合,即数据的组织形式。

(1)逻辑结构:反映数据元素之间的逻辑关系;

2)存储结构:数据的逻辑结构在计算机存储空间中的存放形式。

               顺序存储、链式存储、索引存储、散列存储4种方式。

数据结构按各元素之间前后件关系的复杂度可划分为:

1)线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构。

2)非线性结构:不满足线性结构的数据结构。

1.1.3线性表的及其顺序存储结构

1. 线性表的基本概念

线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。

2. 线性表的插入运算

·元素所占的存储空间必须连续

·元素在存储空间的位置是按逻辑顺序存放的。

1.1.4 栈和队列

1. 栈及其基本运算

1)基本概念:栈是一种特殊的线性表,其插入运算与删除运算都只在线性表的一端进行,也被称为“先进后出”表或“后进先出”表。

·栈顶:允许插入与删除的一端

·栈底:栈顶的另一端

·空栈:栈中没有元素的栈

2)特点

·栈顶元素是最后被插入和最早被删除的元素。

·栈底元素是最早被插入和最后被删除的元素。

·栈有记忆作业。

·在顺序存储结构下,栈的插入和删除运算不需要移动表中其他数据元素。

·栈顶指针top动态反映了栈中元素的变化情况。

3)顺序存储和运算:入栈运算、退栈运算和读栈顶运算。

2.队列及其基本运算

1)基本概念:队列是指允许在一端进行插入,在另一端进行删除的线性表,又称“先进先出”的线性表。

·队尾:允许插入的一端,用尾指针指向队尾元素。

·排头:允许删除的一端,用头指针指向头元素的前一位置。

2)循环队列及其运算

·循环队列:将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。

·入队运算:在循环队列的队尾加入一个新元素。当循环队列非空(s = 1)且队尾指针等于

  队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。

·退队运算:在循环队列的队头位置退出一个元素并赋给指定的变量。首先将队头指针进1,

  然后将排头指针指向的元素赋给指定的变量。当循环队列为空(s = 0)时,不能进行退队运算,这种情况称为“下溢”。

1.1.5 线性链表

线性链表&单链表:在定义的链表中,若只含有一个指针域来存放下一个元素地址。

结点部分:

·数据域:存放数据元素值

·指针域:存放指针

1.1.6 树和二叉树

1.树的基本概念

  树是简单的非线性结构。

·父节点:每一个节点只有一个前件,无前件的节点只有一个,称为树的根节点。

·子节点:每一个节点可以后多个后件,无后节的节点称为叶子节点。

·树的度:所有节点最大的度。

·数的深度:树的最大层次。

2.二叉树的定义及其基本性质

1)二叉树的定义:二叉树是一种非线性结构,是有限的节点集合,该集合为空(空二叉树)或由一个根节点及两棵互不相交的左右二叉子树组成。可分为满二叉树和完全二叉树。其中满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。二叉树具有如下特点:

·二叉树可为空,空的二叉树为无节点,非空二叉树有且只有一个根节点。

·每个节点最多有两棵子树,称为左子树和右子树。

2)二叉树的基本性质

·在二叉树的第k层上至多有2^(k-1)个结点(k>1)

·在深度为m的二叉树至多有2^(m-1)个结点

·对任何一颗二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个

·具有n个结点的完全二叉树的深度至少为[log2n]+1,其中[log2n]是表示log2n的整数部分

3.二叉树的存储结构

二叉树通常采用链式存储结构,存储节点由数据域和指针域组成。二叉树的链式存储结构也称二叉链表,对满二叉树和完全二叉树可按层次进行顺序存储。

1.1.7 查找技术

1)顺序查找:在线性表中查找指定的元素。最多比较次数:n.

2)二分查找:要求表必须用顺序存储结构,且表中元素必须按关键字有序(升序或降序均可)排列。最多比较次数:log2 n.

1.1.8 排序技术

·冒泡排序:最多需要比较次数为n(n-1)/2

·快速排序:最多需要比较次数为O(n2)

 简单插入排序法:最多需要比较次数为n(n-1)/2,移动次数n(n-1)/2

·希尔排序法

·简单选择排序法:最多需要比较次数为n(n-1)/2

·堆排序的方法:最多需要比较次数为O(nlog2 n)

 

1.2 程序设计基础

1.2.1 程序设计方法与风格

1)设计方法:指设计、编制、调试程序的方法和过程,主要有结构化程序设计方法、软件工程方法和面向对象的方法。

2)设计风格:良好的设计风格要注重源程序文档化、数据说明方法、语句的结构和输入输出。

1.2.2 结构化程序设计

1.结构化程序设计的原则

1)自顶向下

2)逐步求精

3)模块化

4)限制使用GOTO语句

2.结构化程序的基本结构与特点

1)顺序结构

2)选择结构

3)重复结构

1.2.3 面向对象的程序设计

·对象:用来表示客观世界中的任何实体、可以是任何有明确边界和意义的东西。

·类:具有共同属性、共同方法的对象的集合。

·实例:一个具有对象就是其对应分类的实例。

·消息:实例间传递的消息,它统一了数据流和控制流。

·继承:使用已有的类定义作为基础建立新类的定义技术。

·多态性:指对象根据所接受的信息而作出动作,同样的信息被不同的对象接收时有不同行动的现象。

 

1.3 软件工程基础

1.3.1 软件工程基本概念

1.软件的定义与特点

1)定义:软件是指与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档和数据。

2)特点:

·是逻辑实体,有抽象性。

·生产没有明显的制作过程。

·运行使用期间不存在磨损、老化问题。

·开发、运行对计算机系统有依赖性,受计算机系统的限制,导致了软件移植问题。

·复杂性较高,成本昂贵。

·开发设计诸多社会因素。

2.软件的分类

1)应用软件

2)系统软件

3)支撑软件

3.软件生命周期

软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。

4.软件工程的原则

抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

 

1.4 数据库设计基础

1.4.1 数据库系统的基本概念

1)数据(Data):描述事物的符号记录。

2)数据库(Database):长期存储在计算机内的、有组织的、可共享的数据集合。

3)数据库管理系统的概念

数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、数据控制及保护和数据服务等。

4)数据库技术发展经历了3个阶段

人工管理阶段->文件系统阶段->数据库系统阶段

5)数据库系统的特点:集成性、高共享性、低冗余性、数据独立性、数据统一管理与控制等。

1.4.2 数据模型

1)E-R模型:提供了表示实体、属性和联系的方法。实体间联系有“一对一”、“一对多”和“多对多”。

2)层次模型

3)网状模型

4)关系模型

1.4.3 关系代数

1)关系代数的基本运算:投影、选择、笛卡尔积

2)关系代数的扩充原酸:交、连接与自然连接、除

1.4.4 数据库设计与管理

数据库设计概述

基本思想:过程迭代和逐步求精。

方法:面向数据的方法和面向过程的方法。

数据库应用系统中心的核心问题是数据库设计

1. 算法的基本概念 利用计算机算法为计算机解题的过程实际上是在实施某种算法。 (1)算法的基本特征 算法一般具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (2)算法的基本运算和操作 算法的基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 (3)算法的3种基本控制结构 算法的3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法 算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 (5)指令系统 所谓指令系统指的是一个计算机系统能执行的所有指令的集合。 (2)数据结构研究的3个方面 ① 数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; ② 在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; ③ 对各种数据结构进行的运算。 2. 逻辑结构 数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间的前后件关系,通常记为R。一个数据结构可以表示成:B=(D,R) 其中,B表示数据结构。为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。 例如,如果把一年四季看作一个数据结构,则可表示成:B =(D,R) D ={春季,夏季,秋季,冬季} R ={(春季,夏季),(夏季,秋季),(秋季,冬季)} 3. 存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。 由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。 链式存储结构就是在每个结点中至少包含一个指针域,用指针来体现数据元素之间逻辑上的联系。 1.2.2 线性结构和非线性结构 根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。 (1)如果一个非空的数据结构满足下列两个条件: ① 有且只有一个根结点; ② 每一个结点最多有一个前件,也最多有一个后件。 则称该数据结构为线性结构。线性结构又称线性表。在一个线性结构中插入或删除任何一个结点后还应是线性结构。栈、队列、串等都为线性结构。 如果一个数据结构不是线性结构,则称之为非线性结构。数组、广义表、树和图等数据结构都是非线性结构。 (2)线性表的顺序存储结构具有以下两个基本特点: ① 线性表中所有元素所占的存储空间是连续的; ② 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 元素ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。 (3)顺序表的运算有查找、插入、删除3种。 1.3 栈 1. 栈的基本概念 栈(stack)是一种特殊的线性表,是限定只在一端进行插入与删除的线性表。 在栈中,一端是封闭的,既不允许进行插入元素,也不允许删除元素;另一端是开口的,允许插入和删除元素。通常称插入、删除的这一端为栈顶,另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。 栈是按照“先进后出”或“后进先出”的原则组织数据的。例如,枪械的子弹匣就可以用来形象的表示栈结构。子弹匣的一端是完全封闭的,最后被压入弹匣的子弹总是最先被弹出,而最先被压入的子弹最后才能被弹出。 二级公共基础知识速学教程 2. 栈的顺序存储及其运算 栈的基本运算有3种:入栈、退栈与读栈顶元素。 ① 入栈运算:在栈顶位置插入一个新元素; ② 退栈运算:取出栈顶元素并赋给一个指定的变量; ③ 读栈顶元素:将栈顶元素赋给一个指定的变量。 1.4 队列 1. 队列的基本概念 队列是只允许在一端进行删除,在另一端进行插入的顺序表,通常将允许删除的这一端称为队头,允许插入的这一端称为队尾。当表中没有元素时称为空队列。 队列的修改是依照先进先出的原则进行的,因此队列也称为先进先出的线性表,或者后进后出的线性表。例如:火车进遂道,最先进遂道的是火车头,最后是火车尾,而火车出遂道的时候也是火车头先出,最后出的是火车尾。若有队列: Q =(q1,q2,…,qn) 那么,q1为队头元素(排头
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值