c语言二级复习资料,全国计算机c语言二级笔试复习资料

41528d3028836879cd698677c3999917.gif全国计算机c语言二级笔试复习资料

Comment [wx1]: 这是因为:在编写程 序时要受到计算机系统运行环境的限 制,程序通常还要考虑很多与方法和 分析无关的细节问题。 Comment [wx2]: 前后件关系:一般情 况下,在具有相同特征的数据元素集 合中,各个数据元素之间存在某种关 系(即联系) ,这种关系反映了该集 合中的数据元素所固有的一种结构。 在数据处理领域中,通常把数据元素 之间这种固有的关系简单地用前后件 关系(即直接前驱与直接后继关系) 来描述。 0 全国计算机等级考试——二级公共基础知识辅导讲义 第一章 数据结构与算法 1.1 算法 1、算法是指解题方案的准确而完整的描述。换句话说,算法是对特定问题求解步骤的一 种描述。 *:算法不等于程序,也不等于计算方法。程序的编制不可能优于算法的设计。 2、算法的基本特征 (1)可行性。针对实际问题而设计的算法,执行后能够得到满意的结果。 (2)确定性。每一条指令的含义明确,无二义性。并且在任何条件下,算法只有唯一的一 条执行路径,即相同的输入只能得出相同的输出。 (3)有穷性。算法必须在有限的时间内完成。有两重含义,一是算法中的操作步骤为有限 个,二是每个步骤都能在有限时间内完成。 (4)拥有足够的情报。算法中各种运算总是要施加到各个运算对象上,而这些运算对象又 可能具有某种初始状态,这就是算法执行的起点或依据。因此,一个算法执行的结果总是 与输入的初始数据有关,不同的输入将会有不同的结果输出。当输入不够或输入错误时, 算法将无法执行或执行有错。一般说来,当算法拥有足够的情报时,此算法才是有效的; 而当提供的情报不够时,算法可能无效。 *:综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的, 且是明确的,此顺序将在有限的次数下终止。 3、算法复杂度主要包括时间复杂度和空间复杂度。 (1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需 基本运算的执行次数来度量。 (2)算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本概念 1、数据结构是指相互有关联的数据元素的集合。 2、数据结构主要研究和讨论以下三个方面的问题: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。 数据的逻辑结构包含:1)表示数据元素的信息;2)表示各数据元素之间的前后件关系。 (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。 数据的存储结构有顺序、链接、索引等。 1)顺序存储。它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑 关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。 2)链接存储。它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附 加的指针字段表示的。由此得到的存储表示称为链式存储结构。 3)索引存储:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。 *:数据的逻辑结构反映数据元素之间的逻辑关系,数据的存储结构(也称数据的物理结构) 是数据的逻辑结构在计算机存储空间中的存放形式。同一种逻辑结构的数据可以采用不同 的存储结构,但影响数据处理效率。 (3)对各种数据结构进行的运算。Comment [wx3]: 在数据结构中,没有 前件的结点称为根结点。 1 3、数据结构的图形表示 一个数据结构除了用二元关系表示外,还可以直观地用图形表示。在数据结构的图形表示 中,对于数据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据 结点,并简称为结点;为了进一步表示各数据元素之间的前后件关系,对于关系R 中的每 一个二元组,用一条有向线段从前件结点指向后件结点。 4、数据结构分为两大类型:线性结构和非线性结构。 (1)线性结构(非空的数据结构)条件:1)有且只有一个根结点;2)每一个结点最多 有一个前件,也最多有一个后件。 *:常见的线性结构有线性表、栈、队列和线性链表等。 (2)非线性结构:不满足线性结构条件的数据结构。 *:常见的非线性结构有树、二叉树和图等。 1.3 线性表及其顺序存储结构 1、线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对 位置是线性的。线性表是由n(n≥0)个数据元素组成的一个有限序列,表中的每一个数据 元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。线性表 中数据元素的个数称为线性表的长度。线性表可以为空表。 *:线性表是一种存储结构,它的存储方式:顺序和链式。 2、线性表的顺序存储结构具有两个基本特点:(1)线性表中所有元素所占的存储空间是 连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 *:由此可以看出,在线性表的顺序存储结构中,其前后件两个元素在存储空间中是紧邻的, 且前件元素一定存储在后件元素的前面,可以通过计算机直接确定第 i个结点的存储地址。 3、顺序表的插入、删除运算(学吧学吧独家稿件) (1)顺序表的插入运算:在一般情况下,要在第 i(1≤i≤n)个元素之前插入一个新元 素时,首先要从最后一个(即第n个)元素开始,直到第 i 个元素之间共n-i+1 个元素依 次向后移动一个位置,移动结束后,第i个位置就被空出,然后将新元素插入到第i 项。 插入结束后,线性表的长度就增加了1。 *:顺性表的插入运算时需要移动元素,在等概率情况下,平均需要移动 n/2 个元素。 (2)顺序表的删除运算:在一般情况下,要删除第 i(1≤i≤n)个元素时,则要从第 i+1 个元素开始,直到第n个元素之间共n-i个元素依次向前移动一个位置。删除结束后,线 性表的长度就减小了1。 *:进行顺性表的删除运算时也需要移动元素,在等概率情况下,平均需要移动(n-1)/2 个元素。插入、删除运算不方便。 1.4 栈和队列 1、栈及其基本运算(学吧学吧独家稿件) 栈是限定在一端进行插入与删除运算的线性表。 在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元 素总是最后被插入的元素,栈底元素总是最先被插入的元素。即栈是按照“先进后出”或 “后进先出”的原则组织数据的。 栈具有记忆作用。 栈的基本运算:1)插入元素称为入栈运算;2)删除元素称为退栈运算;3)读栈顶元素是 将栈顶元素赋给一个指定的变量,此时指针无变化。 栈的存储方式和线性表类似,也有两种,即顺序栈和链式栈。 2、队列及其基本运算Comment [wx4]: 当为一个线性表分配 顺序存储结构后,如果出现线性表的 存储空间已满,但还需要插入新的元 素时,就会发生“上溢”现象。 Comment [wx5]: 在链表中,即使知道 被访问结点的序号i,也不能像顺序 表中那样直接按序号i 访问结点,而 只能从链表的头指针出发,顺着链域 逐个结点往下搜索,直至搜索到第i 个结点为止。因此,链表不是随机存 储结构。 2 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。尾指针 (Rear)指向队尾元素,头指针(front)指向排头元素的前一个位置(队头)。 队列是“先进先出”或“后进后出”的线性表。 队列运算包括:1)入队

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值