【计算机二级--C语言】

【公共基础知识】

 

公共基础知识是与数据结构和计组有关的内容,但对于计算机二级只是了解其表面内容即可,不需要详细了解其有关代码以及更深的原理与扩展。该文章仅适用于考试。

数据结构的基本概念与分类

【计算机二级--C语言】_第1张图片

 注意一种逻辑结构可以有多种存储结构,不同的存储结构其数据处理的效率不同。

线性表与顺序存储结构

线性表是n个相同类型的数据元素构成的有限序列,表中除第一个元素外的每一个元素,有且只有一个前件,除最后一个元素外,有且只有一个后件。如下图:

【计算机二级--C语言】_第2张图片

【计算机二级--C语言】_第3张图片

  线性表可以采用顺序存储和链式存储,一般使用顺序存储。

特点:  1--采用顺序存储的线性表的所有元素所占的存储空间是连续的(线性表中所有元素所占的存储空间是连续的)

             2--可以随机访问数据元素

             3--做插入,删除等数据运算时需移动大量元素,因此线性表不便于插入和删除元素

相关习题:

【计算机二级--C语言】_第4张图片

【计算机二级--C语言】_第5张图片

 栈

栈是限定在一端进行插入和删除的特殊线性表

【计算机二级--C语言】_第6张图片

 特点:1--栈只能在栈顶进行插入和删除

            2--栈的修改原则是”先进后出,后进先出“,多种栈元素具有多种出栈次序

            3--栈底指针不变,栈顶指针随栈中元素的加入而动态变化

【计算机二级--C语言】_第7张图片

           4--栈具有记忆功能

             先进后出。最先进去的数肯定是最后出来的 所以说有记忆功能。比如我们往一个很窄的瓶子里放1,2,3,4号球。最先拿出来的事4号,最后是1号。好像记住了位置所以顺序调换一样,所以说栈具有记忆功能。栈的模型就是这样的。队列这种数据结构 是先进先去,就像我们平时排队 你先去排队,就站在队列的最前面 如果进行出队操作,最先的元素就出队 没有了,无法有记忆作用。栈是相反 在前面的后出来,就具有了记忆作用。
          5--栈支持子程序调用

              栈是一种先进后出的线性表,他只能从一端插入和删除,在主程序调用子函数的时候先保存主函数的当前状态,然后转去执行子函数,最终把子函数的结果返回到主函数中调用子函数的位置,继续执行,这就是栈支持的子程序调用。

相关习题:

【计算机二级--C语言】_第8张图片

【计算机二级--C语言】_第9张图片

 队列

队列是指允许在一端进行插入,而在另一端进行删除的特殊线性表

1——队列只允许在队尾进行插入,而在队头进行删除

2——队列的原则是”先进先出“或“后进后出

3——队列中元素随队头指针和队尾指针的变化而动态变化

【计算机二级--C语言】_第10张图片

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

【计算机二级--C语言】_第11张图片

 相关习题:

【计算机二级--C语言】_第12张图片

 【计算机二级--C语言】_第13张图片

线性链表 

线性表可以采用顺序存储和链式存储。线性表的顺序存储叫顺序表(连续的存储空间),线性表的链式存储结构叫线性链表

【计算机二级--C语言】_第14张图片

 特点:

1——各数据节点的存储空间可以不连续

2——线性表的链式存储所占存储空间大于顺序存储空间(指针域所占空间)

3——查找结点时链式存储比顺序存储要慢

4——在线性链表中进行插入和删除,不需要移动链表中的元素

【计算机二级--C语言】_第15张图片

 ————————————————————————————————————————

从数据的存储结构再对线性表进行分类:

【计算机二级--C语言】_第16张图片

 ————————————————————————————————————————

树和二叉树

树的结构与相关术语

【计算机二级--C语言】_第17张图片

 对于二叉树来说:非空二叉树只有一个根节点,每一个节点最多有两颗子树,且分别成为该节点的左子树和右子树,结构如下图所示:

【计算机二级--C语言】_第18张图片

 二叉树具有5种基本形态:

【计算机二级--C语言】_第19张图片

 二叉树具有两种特殊的二叉树:满二叉树和完全二叉树

特点:(与数学相关)

1——在二叉树的第K层,最多有2^(k-1)个节点

2——深度为m的二叉树最多有2^m -1个节点

3——度为0的节点(叶子节点)总比度为2节点多一个

4——

 相关习题:

【计算机二级--C语言】_第20张图片

 二叉树的遍历

三种遍历方式和结构如图:【计算机二级--C语言】_第21张图片

 顺序查找

对于长度为n的线性表,平均要进行n/2次比较,在最坏的情况下要进行n次比较。

适用于无序表和链式线性表(不管有序还是无序)

二分查找

适用于顺序存储有序表,对长度为n的线性表,在最坏的情况下要进行

 注意即使时有序线性表,采用链式存储结构,也只能用顺序查找

排序

了解常用的六种排序方式以及相应的原理和最坏情况次数:

【计算机二级--C语言】_第22张图片

快速排序的原理:(不需了解其代码)

https://www.bilibili.com/video/BV1at411T75o?t=2.2

例题:

【计算机二级--C语言】_第23张图片

 注意简单选择排序(直接选出最小的元素直接与第一个元素交换,之后再选出最小的元素与第二个元素交换,重复这个过程)不是快速排序

—————————————————————————————————————————

程序设计基础

结构化程序设计常采用顺序,选择和循环三种基本结构

有关程序设计相关的习题:

【计算机二级--C语言】_第24张图片

 【计算机二级--C语言】_第25张图片

关于程序设计的几个概念:

对象

对象的基本特性

【计算机二级--C语言】_第26张图片

 继承

【计算机二级--C语言】_第27张图片

 消息

 【计算机二级--C语言】_第28张图片

多态性

是指同样的消息被不同的对象接受时可导致完全不同的行动的现象 

—————————————————————————————————————————

软件工程基础

1.   软件:是由程序、数据及其相关文档构成的集合。

2.   软件的分类

    ① 系统软件:操作系统、编译程序、汇编程序、网络软件、数据库管理系统;

    ② 应用软件:事务处理软件、工程与科学计算软件、实时处理软件、人工智能软件;

    ③ 支撑软件(工具软件):需求分析工具、编译工具软件、测试工具软件、维护工具软件。

3.   软件危机:需求增长、开发难控、质量难保、难以维护、提高成本、生产率低。

4.   软件工程:

    ① 定义:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。

    ② 其目的是提高软件生产率、提高软件质量、降低软件成本。

    ③ 其核心思想是把软件当作一个工程产品来处理。

5.   软件工程三要素:

    ① 方法:是完成软件工程项目的技术手段;

    ② 工具:支持软件的开发、管理和文档生成;

    ③ 过程:支持软件发开的各环节的控制和管理。

6.   软件生命周期:

    ① 定义:将软件产品产品能够提出、实现、使用维护到停止使用退役的过程称为软件生命周期。

    ② 分为软件定义、软件开发及软件运行维护3个时期。维护是持续时间最长,花费代价最大的一个时期。

    ③  软件工程学的一个目的就是提高软件的可维护性,降低维护代价。

7.   3个时期共有8个阶段:

    ① 软件定义:问题定义可行性研究、需求分析;

    ② 软件开发:概要设计、详细设计、实现、测试;

    ③ 软件运行维护:使用、维护。

8.   需求分析:(★)

    ① 确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。

    ② 其工作:需求获取、需求分析、编写需求规格说明书、需求评审。

    ③ 产生文档:为需求规格说明书。

    ④ 需求规格说明书的作用:

        a.便于用户、开发人员进行理解交流;

        b.反映用户问题的结构,可以作为软件开发工作的继承和依据;

        c.作为确认测试和验收的依据。

9.   需求规格说明书(SRS):需求分析阶段产生的主要文档是“软件需求规格说明书”。

    特点:

    ① 正确性:体现待开发系统的真是要求;

    ② 无歧义性:对每个需求只有一种解释;

    ③ 完整性:包括全部有意义的需求;

    ④ 可验证性:每个需求都是可验证的;

    ⑤ 一致性:各个需求的描述不矛盾;

    ⑥ 可理解性:需求说明书必须简明易懂;

    ⑦ 可修改性:结构风格在改变时,是易于实现的;

    ⑧ 可追踪性:每个需求的来源和流向是清晰的。

.......................................................................................................to  be continued

你可能感兴趣的:(c语言,其他)