公共基础知识是与数据结构和计组有关的内容,但对于计算机二级只是了解其表面内容即可,不需要详细了解其有关代码以及更深的原理与扩展。该文章仅适用于考试。
注意一种逻辑结构可以有多种存储结构,不同的存储结构其数据处理的效率不同。
线性表是n个相同类型的数据元素构成的有限序列,表中除第一个元素外的每一个元素,有且只有一个前件,除最后一个元素外,有且只有一个后件。如下图:
线性表可以采用顺序存储和链式存储,一般使用顺序存储。
特点: 1--采用顺序存储的线性表的所有元素所占的存储空间是连续的(线性表中所有元素所占的存储空间是连续的)
2--可以随机访问数据元素
3--做插入,删除等数据运算时需移动大量元素,因此线性表不便于插入和删除元素
相关习题:
栈是限定在一端进行插入和删除的特殊线性表
特点:1--栈只能在栈顶进行插入和删除
2--栈的修改原则是”先进后出,后进先出“,多种栈元素具有多种出栈次序
3--栈底指针不变,栈顶指针随栈中元素的加入而动态变化
4--栈具有记忆功能
栈先进后出。最先进去的数肯定是最后出来的 所以说有记忆功能。比如我们往一个很窄的瓶子里放1,2,3,4号球。最先拿出来的事4号,最后是1号。好像记住了位置所以顺序调换一样,所以说栈具有记忆功能。栈的模型就是这样的。队列这种数据结构 是先进先去,就像我们平时排队 你先去排队,就站在队列的最前面 如果进行出队操作,最先的元素就出队 没有了,无法有记忆作用。栈是相反 在前面的后出来,就具有了记忆作用。
5--栈支持子程序调用
栈是一种先进后出的线性表,他只能从一端插入和删除,在主程序调用子函数的时候先保存主函数的当前状态,然后转去执行子函数,最终把子函数的结果返回到主函数中调用子函数的位置,继续执行,这就是栈支持的子程序调用。
相关习题:
队列是指允许在一端进行插入,而在另一端进行删除的特殊线性表
1——队列只允许在队尾进行插入,而在队头进行删除
2——队列的原则是”先进先出“或“后进后出”
3——队列中元素随队头指针和队尾指针的变化而动态变化
循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间
相关习题:
线性表可以采用顺序存储和链式存储。线性表的顺序存储叫顺序表(连续的存储空间),线性表的链式存储结构叫线性链表
特点:
1——各数据节点的存储空间可以不连续
2——线性表的链式存储所占存储空间大于顺序存储空间(指针域所占空间)
3——查找结点时链式存储比顺序存储要慢
4——在线性链表中进行插入和删除,不需要移动链表中的元素
————————————————————————————————————————
从数据的存储结构再对线性表进行分类:
————————————————————————————————————————
树的结构与相关术语
对于二叉树来说:非空二叉树只有一个根节点,每一个节点最多有两颗子树,且分别成为该节点的左子树和右子树,结构如下图所示:
二叉树具有5种基本形态:
二叉树具有两种特殊的二叉树:满二叉树和完全二叉树
特点:(与数学相关)
1——在二叉树的第K层,最多有2^(k-1)个节点
2——深度为m的二叉树最多有2^m -1个节点
3——度为0的节点(叶子节点)总比度为2节点多一个
4——
相关习题:
对于长度为n的线性表,平均要进行n/2次比较,在最坏的情况下要进行n次比较。
适用于无序表和链式线性表(不管有序还是无序)
适用于顺序存储的有序表,对长度为n的线性表,在最坏的情况下要进行
注意即使时有序线性表,采用链式存储结构,也只能用顺序查找
了解常用的六种排序方式以及相应的原理和最坏情况次数:
快速排序的原理:(不需了解其代码)
https://www.bilibili.com/video/BV1at411T75o?t=2.2
例题:
注意简单选择排序(直接选出最小的元素直接与第一个元素交换,之后再选出最小的元素与第二个元素交换,重复这个过程)不是快速排序
—————————————————————————————————————————
结构化程序设计常采用顺序,选择和循环三种基本结构
有关程序设计相关的习题:
关于程序设计的几个概念:
对象
对象的基本特性
继承
消息
多态性
是指同样的消息被不同的对象接受时可导致完全不同的行动的现象
—————————————————————————————————————————
1. 软件:是由程序、数据及其相关文档构成的集合。
2. 软件的分类:
① 系统软件:操作系统、编译程序、汇编程序、网络软件、数据库管理系统;
② 应用软件:事务处理软件、工程与科学计算软件、实时处理软件、人工智能软件;
③ 支撑软件(工具软件):需求分析工具、编译工具软件、测试工具软件、维护工具软件。
3. 软件危机:需求增长、开发难控、质量难保、难以维护、提高成本、生产率低。
4. 软件工程:
① 定义:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
② 其目的是提高软件生产率、提高软件质量、降低软件成本。
③ 其核心思想是把软件当作一个工程产品来处理。
5. 软件工程三要素:
① 方法:是完成软件工程项目的技术手段;
② 工具:支持软件的开发、管理和文档生成;
③ 过程:支持软件发开的各环节的控制和管理。
6. 软件生命周期:
① 定义:将软件产品产品能够提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
② 分为软件定义、软件开发及软件运行维护3个时期。维护是持续时间最长,花费代价最大的一个时期。
③ 软件工程学的一个目的就是提高软件的可维护性,降低维护代价。
7. 3个时期共有8个阶段:
① 软件定义:问题定义可行性研究、需求分析;
② 软件开发:概要设计、详细设计、实现、测试;
③ 软件运行维护:使用、维护。
8. 需求分析:(★)
① 确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。
② 其工作:需求获取、需求分析、编写需求规格说明书、需求评审。
③ 产生文档:为需求规格说明书。
④ 需求规格说明书的作用:
a.便于用户、开发人员进行理解交流;
b.反映用户问题的结构,可以作为软件开发工作的继承和依据;
c.作为确认测试和验收的依据。
9. 需求规格说明书(SRS):需求分析阶段产生的主要文档是“软件需求规格说明书”。
特点:
① 正确性:体现待开发系统的真是要求;
② 无歧义性:对每个需求只有一种解释;
③ 完整性:包括全部有意义的需求;
④ 可验证性:每个需求都是可验证的;
⑤ 一致性:各个需求的描述不矛盾;
⑥ 可理解性:需求说明书必须简明易懂;
⑦ 可修改性:结构风格在改变时,是易于实现的;
⑧ 可追踪性:每个需求的来源和流向是清晰的。
.......................................................................................................to be continued