全国公共基础知识
全国计算机等公共基础知识总结

第一章数据结构与算法
1.1 算法
算法是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计 重点
法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止特征包括: (重点)
1)可行性;
2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;
3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;
4)输入
5)输出
算法设计的要求:
(1) 正确性
(2) 可读性:算法主要是为了人的阅读和方便,其次才是机器的执行。可读性好有助于人对算法的理解;晦涩难懂的程序易于隐藏较多错误,难以调试和修改。
(3) 健壮性
(4) 效率低存储量需求 即执行时间要短,存储空间小。这两者都与问题的规模有关

算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。 (重点)
算法空间复杂度是指执行这个算法所需要的内存空间。
历年真题:
07春(1)下列叙述中正确的是
A)算法的效率只与问题的规模有关,而与数据的存储结构无关(算法的效率与问题的规模、数据的存储结构也有关)
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关
历年真题06秋(7)下列叙述中正确的是________。D
A)一个算法的空间复杂度大,则其时间复杂度也必定大
B)一个算法的空间复杂度大,则其时间复杂度必定小
C)一个算法的时间复杂度大,则其空间可复杂度必定小
D)上述三种说法都不对
1.2 数据结构的基本基本概念
数据结构研究的三个方面:
1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;
自然数指的是什么2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:
1)表示数据元素的信息;
2)表示各数据元素之间的前后件关系
数据的存储结构有顺序存储结构:各数据元素在存储空间中是按逻辑顺序依次存放的。
链式存储结构:借助元素地址的指针表示数据元素之间的关系。(理解)
假设有一组数据(王华,陈红,张楠,武田),陈红的直接前趋:王华,陈红的直接后继:
张楠,武田无直接后继,王华没有直接前趋)
顺序存储:(王华,陈红,张楠,武田)是一组逻辑上紧邻的元素,在内存中存储时,和他们现在紧邻的顺序是一致的。王华如住在101,陈红必在102,张楠103,武田104,在电脑中存储的顺序和逻辑结构一致
链式存储:王华,陈红,张楠,武田)是一组逻辑上紧邻的元素,在内存中存储时,没有按照逻辑上的次序,一次存储在内存中
存储结构:数据在计算机中的存储。(比如王华,武田,这些数据在电脑中保存,都是要存储在电脑中的)
线性结构条件:要会判断,什么样的结构是性结构(重点)
1)有且只有一个根结点;
2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
注意:数据的逻辑结构和物理结构是密切相关的两个方面,任何一个算法的设计取决于选定的数据逻辑结构,而算法的实现依赖于采用的存储结构。
历年真题:07秋(6)下列叙述中正确的是
A)数据的逻辑结构与存储结构必定是一一对应的(不对)
B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构(有线性结构,非线性结构两种)
C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构(不对)
D)以上三种说法都不对
历年真题06春(5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称【5】。物理独立性
1线性表及其顺序存储结构
线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
非空线性表的结构特征:
1)且只有一个根结点a1,它无前件;
2)有且只有一个终端结点an,它无后件;
3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:
1)线性表中所有元素的所占的存储空间是连续的;
2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)kADR(a1)为第一个元素的地址,k代表每个元素占的字节数。
顺序表的运算:插入、删除。 (详见14--16页)
历年真题06(8)在长度为64的有序线性表中进行顺序查,最坏情况下需要比较的次数为________。64次 ,最小3,最大16,你要2,比较一次就不用再比了。
A)63 B)64 C)6 D)7
1栈和队列 (线性结构),重点
栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈按照“先进后出”(FILO)或“后进先出(重点O)组织数据,栈具有记忆作用。top表示栈顶位置,用bottom表示栈底。
栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表Rear指针指向队尾,front指针指向队头。 Rear用来加进一个元素, front用来删除一个元素
“先进行出”(FIFO)或“后进后出”(LILO)的线性表。
队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。
循环队列:s=0表示队列空,s=1front=rear表示队列满
历年真题:07(5)下列对列的叙述正确的是
A)队列属于非线性表 B)队列按先进后出原则组织数据
C)队列在队尾删除数据(正确:队头)D)队列按先进先出原则组织数据
历年真题:07(3)线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的【3 存储结构。(线性)
历年真题06秋(4)按“先进后出”原则组织数据的数据结构是 【4】 。(栈)
历年真题06秋(5)数据结构分为线性结构和非线性结构,带链的队列属于 【5】。(线性结构)
1线性链表 (线性结构)
每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针(地址,房间号),称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:查、插入、删除。
历年真题06春(4)按照”后进先出”原则组织数据的数据结构是(  )
 A)队列 B)栈C)双向链表 D)二叉树
历年真题06(5)下列叙述中正确的是(  )
 A)线性链表是线性表的链式存储结构 B)栈与队列是非线性结构
 C)双向链表是非线性结构           D)只有根结点的二叉树是线性结构

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。