国二公共基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
国二公共基础知识
第一章数据结构与算法
1.1算法
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:
(1)算法中对数据的运算和操作,包括:算术、逻辑、关系运算以及数据传输。
(2)算法的控制结构,一般都可由顺序、选择、循坏(重复)三种控制结构组合而成。
3.算法的设计基方法:列举法、归纳法、递推、递归、减半递推、回溯法。
4.算法的时间复杂度:是指算法所需要的计算工作量,由基本运算次数来度量。
5算法的空间复杂度:指执行算法所需要的内存空间。包括,算法程序所占空间、输入初始
数据所占的存储空间、算法执行过程中所需要的额外空间。
1.2数据结构的基本概念
1.数据结构主要研究以下三个方面:
(1)逻辑结构:数据集合中各数据元素之间所固有的逻辑关系。
(2)存储结构:在对数据进行处理时,各数据元素在计算机中的存储关系。
(3)对各种数据结构进行的运算。
2.数据处理:指对数据集合中各元素以各种方式进行运算,包括插入、删除、查找、更改、
以及对数据元素进行分析。
3.数据结构:是指带有结构的数据元素的集合,它包含以下两方面信息:
(1)表示数据元素的信息;
(2)表示各数据元素之间的前后件关系。
4.数据逻辑结构:B=(D,R)
B:数据结构
D:数据元素集合
R:各数据元素之间的前后件关系
5.数据存储结构:数据的逻辑结构在计算机存储空间中的存放形式,也叫物理结构。
常用的存储结构有顺序、链接、索引。
6.线性结构:若非空数据结构满足:(1)有且只有一个根结点;(2)每一个结点最多有一个
前件,也最多有一个后件。则称线性结构,也叫线性表。
1.3线性表及其顺序存储结构
1.线性表是由一组元素组成,可是以是矩阵。
2.线性表的顺序存储结构有两个基本特点:
(1)线性表中所有元素所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
3.线性表中第i个元素在计算机存储空间中的存储地址为:ADR(ai)=ADR(a1)+(i-1)k
4.在程序设计语言中,通常定义一个一维数组来表示线性表的顺序存储空间。
5.对线性表的各种处理:插入、删除、查找、排序、分解、合并、复制、逆转等。
6.插入:从最后一个元素开始向后移动,直到第i个元素。
7.删除:从第i+1个元素开始向后移动,直到第n个元素。
1.4栈和队列
1.栈:是限定在一端进行插入与删除的线性表,先进后出或后进先出。
2.栈顶:允许插入的一端,用top表示;栈底:允许删除的另一端,用bottom来表示。
3.用一维数组S(1:m)作为栈的顺序存储空间,其中m为栈的最大容量。
4.Top=0表示栈空;top=m表示栈满。
5.栈的基本运算有三种:
(1)入栈运算:在栈顶位置插入一个新元素
(2)退栈运算:取出栈顶元素并赋给一个指定的变量
(3)读栈顶元素:指将栈顶元素赋给一个指定的变量
1.2队列:指允许在一端进行插入、而在另一端进行删除的线性表,先进先出或后进后出。
1.队尾:允许插入的一端,用尾指针( rear)来指向队尾元素
2.排头:允许删除的一端,用排头指针(front)指向排头元素
3.入队运算:在队尾插入一个元素,只涉及尾指针(rear)的变化
4.退队运算:在排头删除一个元素,只涉及排头指针(front)的变化
5.循环队列:将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供
队列环状使用。
6.循环队列的初始状态为空,即rear=front=m。
每进行一次入队运算,队尾指针就进一。当队尾指针rear=m+1时,则置rear=1。
第进行一次退队运算,排头指针就进一。当排头指针 front=m+1时,则置front=1。
7.当队列满和空时,都有front=rear
用S=0表示队列空,用S=1表示队列非空
(1)队列空的条件为S=0;
(2)队列满的条件为S=1且front=rear。
1.5线性链表的基本概念
1.链式存储方式,要求每个结点由两部分组成:(1)用于存放数据元素值,称数据域;
(2)用于存放指针,称指针域。
2.线性链表:线性表的链式存储结构。最后一个结点指针域为空(NULL或0),表链表终止。
3.线性单链表只能找到后件结点,不能找到前件结点。
4.线性双链表:(1)左指针,用以指向前件结点;(2)右指针,有以指向向件结点。
5.带链的栈:采用链式存储结构的栈,称为可利用栈。
6.循环链表有以下两个特点:
(1)在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性链表的第一个元素的结点。循环链表的头指针指向表头结点。
(2)循环链表中最后一个结点的指针域不是空,而是指向表头结点。
7.在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结占,面线性单链表做不到这一点。
1.6树与二叉树
1.树:树是一种简单的非线性结构。
2.具有层次关系的数据都可以用树这种数据结构来描述。
3.在树结构中,每一个结点都只有一个前件,称为父结点;没有前件的结点只有一个,称为根结点,简称树的根。
4.第一个结点可以有多个后件,它们都称为该结点的子结点;没有后件的结点称为叶子结点