没有合适的资源?快使用搜索试试~ 我知道了~
计算机二级C语言公共基础知识主要涵盖了数据结构与算法的基础概念,这是编程学习中至关重要的一部分。算法是解决问题的具体步骤,它不等同于程序,但程序的高效实现离不开良好的算法设计。算法的基本特征包括可行性、确定性、有穷性和拥有足够的信息。算法设计方法包括列举法、归纳法、递推、递归等,而算法复杂度则关注时间复杂度和空间复杂度,分别衡量执行时间和所需内存。 数据结构是算法的载体,研究数据元素之间的逻辑关系、存储关系以及对这些结构的操作。逻辑结构如线性结构、非线性结构,存储结构如顺序、链接、索引等。线性表是一种常见的线性结构,由有序的数据元素组成,顺序存储结构则是所有元素连续存储,便于快速访问,但插入和删除操作相对较慢。线性链表则通过指针链接元素,灵活性更高,但访问速度较慢。 栈和队列是两种特殊的线性结构。栈遵循“先进后出”或“后进先出”的原则,常用于表达式求值、递归调用等场景。队列则遵循“先进先出”,常用于任务调度、打印队列等。循环队列解决了普通队列可能遇到的满队列问题。 树是一种非线性数据结构,其中每个节点有零个或多个子节点。二叉树是树的特殊形式,每个节点最多有两个子节点,分为左子节点和右子节点,二叉树在搜索、排序等领域有广泛应用。理解这些基本概念对于掌握C语言编程以及解决实际问题至关重要,尤其是在处理大量数据时,合理选择数据结构和算法能够显著提高程序效率。在准备计算机二级C语言考试时,深入理解和熟练运用这些基础知识是关键。
资源推荐
资源详情
资源评论
计算机二级 c 语言公共基础知识(免费的)
计算机二级 C 语言的二级共公基础知识教程
第一章数据结构与算法
1。1 算法
算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺
序将在有限的次数下终止.特征包括:
(1)可行性;
(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;
(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执
行时间的含义;
(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构.
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念
数据结构研究的三个方面:
(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
计算机二级 c 语言公共基础知识(免费的)
(3)对各种数据结构进行的运算.
数据结构是指相互有关联的数据元素的集合.
数据的逻辑结构包含:
(1)表示数据元素的信息;
(2)表示各数据元素之间的前后件关系.
数据的存储结构有顺序、链接、索引等.
线性结构条件:
(1)有且只有一个根结点;
(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构.
1.3 线性表及其顺序存储结构
线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性
的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又
称为文件。
非空线性表的结构特征:
(1)且只有一个根结点 a1,它无前件;
(2)有且只有一个终端结点 an,它无后件;
(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个
数 n 称为线性表的长度,当 n=0 时,称为空表。
线性表的顺序存储结构具有以下两个基本特点:
(1)线性表中所有元素的所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai 的存储地址为:ADR(ai)=ADR(a1)+(i—1)k,,ADR(a1)为第一个元素的地址,k 代表每个元
计算机二级 c 语言公共基础知识(免费的)
素占的字节数。
顺序表的运算:插入、删除。 (详见 14—-16 页)
1.4 栈和队列
栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除
的另一端称为栈底。
栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用 top 表示
栈顶位置,用 bottom 表示栈底.
栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将
栈顶元素赋给一个指定的变量,此时指针无变化.
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear 指针指向队
尾,front 指针指向队头。
队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表.
队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。
循环队列:s=0 表示队列空,s=1 且 front=rear 表示队列满
1.5 线性链表
数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,
用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之
间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD 称为头指针,HEAD=NULL(或 0)称为空表,如果是两指针:左指针(Llink)指
向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:查找、插入、删除.
计算机二级 c 语言公共基础知识(免费的)
1.6 树与二叉树
一、树的基本概念
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结
点,简称为树的根。
在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶
子结点。
在树结构中,一个结点所拥有的后件个数称为该结点的度.
叶子结点的度为 0。
树的最大层次称为树的深度.
在一个算术表达式中,有运算符和运算对象。一个运算符可以有若干个运算对象.例职,取正
(+)等只有一个运算对象,称为单目运算符;二个运算对象称为双目运算符,三目运算符。
用树来表示算术表达式的原则如下:
表达式中的每一个运算符在树中对应一个结点,称为运算符结点.
运算符的每一个运算对象在树中为该运算符结点的子树(在树中的顺序为从左到右)。
运算对象中的单变量均为叶子结点。
二、二叉树及其基本性质
1、什么是二叉树
二叉树是一种很有用的非线性结构。二就树具有以下两个特点:
非空二叉树只有一个根结点;
每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
由以上特点可以看出,在二叉树中,每一个结点的度最大为 2,即所有子树(左子树或右子树)也
均为二叉树,而树结构中的每一个结点的度可以是任意的.另外,二叉树中的每一个结点的子树
被明显地分为左子树与右子树.可以没有其中的一个,也可以全没有。
二叉树的基本性质
计算机二级 c 语言公共基础知识(免费的)
性质 1:在二叉树的第 K 层上,最多有(K≥1)个结点。
性质 2:浓度为 M 的二叉树最多有 2m—1 个结点.
深度为 m 的二叉树是指二叉树共有 m 层.
性质 3:在任意一棵二叉树中度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。
性质 4:具有 n 个结点的二叉树,其深度至少为[ log2n]+1,其中[ log2n]表示取的整数部分。
满二叉树与完全二叉树
满二叉树与完全二叉树是两种特殊形态的二叉树。
满二叉树
所谓满二叉树是指这样的一种二叉树;除最后一层外,每一层上的所有结点都有两个子结点.这
就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第 K 层上有 2K-1 个结
点,且深度为 m 的满二叉树有 2m-1 个结点。
完全二叉树
所谓完全二叉树是指这样的二叉树,除最后一层外,每一层上的结点数均达的最大值;在最后一
层上只缺少右边的若干结点。
列确切地说,如果从根结点起,对二叉树的结点自上而下、自左至右用自然数进行边疆编号,
则深度为 m、且有 n 个结点的二叉树,当且仅当其每一个结点都与深度为 m 的满二叉树中编号
从 1 到 n 的结点一一对应时,称之为完全二叉树.
对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现;对于任何一个结点,若其右分
支下的子孙结点的最大层次为 p,则其左分支下的子孙结点的最大层次或为 p,或为 p+1。
由满二叉树与完全二叉树的特点可以看出,满二叉树也是完全二叉树,而完全二叉树一般不是
满二叉树。
完全二叉树还具有以下两个性质:
性质 5:具有 n 个结点的完全二叉树的深度为[ log2n]+1。
性质 6:设完全二叉树共有 n 个结点。如果从根结点开始,按层序(每一层从左到右)用自然数
剩余70页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3815
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- com.huawei.it.ilearning.android_v260.apk
- 鸟类目标检测数据集-含画眉鸟-百灵鸟xml文件数据集
- pyheif-0.8.0-cp37-cp37m-win-amd64.whl.zip
- 基于深度学习的鸟类种类目标检测-含数据集和训练代码-对百灵鸟-画眉鸟检测.zip
- pyheif-0.8.0-cp38-cp38-win-amd64.whl.zip
- pyheif-0.8.0-cp39-cp39-win-amd64.whl.zip
- pyheif-0.8.0-cp313-cp313-win-amd64.whl.zip
- MyBatis SQL mapper framework for Java.zip
- pyheif-0.8.0-cp312-cp312-win-amd64.whl.zip
- pyheif-0.8.0-cp311-cp311-win-amd64.whl.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功