二级VF公共基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章数据结构与算法
一、算法
1、算法:是指解题方案的准确而完整的描述。
2、算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
3、算法的基本要素:一是对数据对象的运算和操作,二是算法的控制结构。
4、算法的运算和操作:算术运算、逻辑运算、关系运算、数据传输四类。
5、算法的控制结构:顺序、选择、循环三种基本结构。
6、算法的复杂度:包括时间复杂度和空间复杂度。所谓时间复杂度是指执行算法需要
的工作量。而空间复杂度是指执行这个算法所需要的内存空间。
二、数据结构及其操作
1、数据结构:包括数据的逻辑结构、数据的存储结构及各种数据结构进行的运算。
2、数据的逻辑结构:是指反映数据元素之间逻辑关系的数据结构。
3、数据的存储结构:是指数据的逻辑结构在计算机存储空间中的存放形式,也称数据
的物理结构。常用的存储结构有顺序、链接、索引。
4、线性结构:一个非空的数据结构有且只有一个根结点,每一个结点最多有一个前件,
也最多有一个后件。没有前件的结点称为根结点;没有后件的结点的称为终端结点
(叶子结点)
5、线性表:是最简单最常用的线性结构。
6、线性表的顺序存储结构的特点:一是线性表中所有元素所占空间是连续的,二是各
数据元素在存储空间中是按逻辑顺序依次存放的。
7、栈:是限定在一端进行插入与删除的顺序存储线性表,栈是按照先进后出或后进先
出的原则组织数据的。
8、栈的基本运算:入栈、退栈、读栈。当栈已满,不能进行入栈操作,这种情况称“上
溢”,当栈已空,不能退栈,称为“下溢”
9、队列:是指允许在一端进行插入、而在另一端进行删除的顺序存储线性表。队列是
按照先进先出或后进后出的原则组织数据的。
10、队列的基本运算:入队、退队。不能进行入队操作,这种情况称为“上溢”,当队
列为空,不能退队,称为“下溢”。
11、线性链表:线性表的链式存储结构。它克服了顺序存储结构的缺点,它的结点空间
可以动态申请与释放。它的数据元素的逻辑次序靠结点指针指示,不需要移动数据。便于插入和删除操作。
12、链式存储结构的缺点:一是每个结点指针域需占用存储空间,二是一种非随机存储
结构。
三、数与二叉树
1、树:一种简单的非线性结构。
2、根:没有前件的结点只有一个,称为树的根结点,简称根。
3、叶子结点:没有后件的结点称为叶子结点。
4、度:一个结点所拥有的后件个数称为该结点的度。所有结点中最大的度称为该树的
度。
5、深度:树的最大层次称为树的深度。
6、二叉树:一种非线性结构。
7、二叉树的特点:一是二叉树只有一个根结点,二是每个结点最多有两棵子树,分别
为左子树与右子树。
8、二叉树的基本特征:
<1>在二叉树的第K层上,最多有2k-1个结点。
<2>深度为M的二叉树最多有2M-1个结点。
<3>在任意一棵二叉树中,度为0的结点总是比度为2的结点多一个。
<4>具有N个结点的二叉树,其深度至少为[log2N]+1
<5>具有N个结点的完全二叉树的深度为[log2N]+1
9、二叉树的存储结构:一般采用链式存储结构。
10、二叉树的遍历:
<1>前序遍序:先访问根结点,前序遍历左子树,前序遍历右子树。
<中序遍历>:中序遍历左子树,访问根结点,中序遍历右子树。
<后序遍历>:后序遍历左子树,后序遍历右子树,访问根结点。
四、查找技术与排序技术
1、顺序查找:如线性表为无序表,或采用链式存储结构,只能用顺序查找。
2、二分法查找:只适用于顺序存储的有序表。
3、当长序为N的有序线性,在最坏的情况下,二分查找只需要比较log2N次,而顺序
查找比较需要N次。
4、排序:是指将一个无序序列整理成按值非递减顺序排列的有序序列。
5、排序方法:交换类排序法、插入类排序法、选择类排序法。
6、冒泡排序法:冒泡排序法是一种简单的交换类的排序方法。假设线性表的长度为N,
则在最坏的情况下需要的比较次数为:N(N-1)/2
7、希尔排序法:希尔排序法是一种插入类排序法。假设线性表的长度为N,则在最坏
的情况下需要比较次数为O(N1..5)
第二章程序设计基础
一、程序设计方法与风格
1、程序设计:就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向
对象的程序设计阶段。
2、程序设计的风格:最主要强调简单和清晰,程序必须是可以理解的。保证“清晰第
一,效率第二”。
3、结构化程序设计的主要原则:自顶向下、逐步求精、模块化、限制使用goto语句。
4、结构化程序的基本结构:顺序、选择、重复(循环)。
5、结构化程序设计的优点:一是程序便于理解、使用和维护,二是提交了编程工作的
效率,降低了软件开发成本。
二、面向对象的程序设计
1、面向对象方法的主要优点:一是与人类习惯的思维方式一致,二是稳定性好,三是
可重用性好,四是易于开发大型软件产品,五是可维护性。
2、对象:客观世界里的任何实体都可以被看作是对象,它由一组属性和操作组成。
3、对象的基本特点:标识惟一性、分类性、多态性、封装性、模块独立性好。信息隐
蔽是通过对象的封装性来实现的。
4、类:具有共同属性、共同方法的对象的集合。
5、实例:是指一个具体的对象,对象属于类的实例。
6、消息:在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发消息
完成的。
7、继承:在面向对象方法中,类之间共享属性和操作的机制称为继承。
8、多态性:同样的消息被不同的对象接受可导致完全不同的行为。