计算机二级前十题文档格式.docx
《计算机二级前十题文档格式.docx》由会员分享,可在线阅读,更多相关《计算机二级前十题文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
Dim数组名(下标1[,下标2…])[As类型]
注意
(1)用一个下标来表示即一维数组,用二个下标来表示即二维数组;
(2)下界缺省为0,若要从1开始,必须在“通用”中加上“OptionBase1”;
(3)对一维数组,“LBound(a,1)”表示下界,“UBound(a,1)”表示上界;
(4)动态数组的定义:
Dima()AsInteger
PrivateSubCommand1_Click()
m=InputBox(“输入一个数:
”)
ReDima(m)
EndSub
线性结构与非线性结构
一个非空的数据结构满足下列两个条件:
1.有且只有一个根结点;
2.每个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构,又称线性表
只要不满足以上两个条件中的一点,就不是线性结构,即为非线性结构
非空线性表的结构特征:
1.且只有一个根结点a,它无前件;
2.有且只有一个终端点a,它无后件;
3.除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。
线性表的顺序储结构具有以下两个基本特点:
1.线性表中所有元素的所占的存储空间是连续的;
2.线性表中各数元素在存储空间中是按逻辑顺序依次存放的
元素ai的存储地址为:
ADR(ai)=ADR(a1)+(i-1)k,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数
栈和队列
栈:
是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。
栈的组织数据规则:
按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
用top表示栈顶位置,用bottom表示栈底。
栈的基本运算:
(1)插入元素称为入栈运算;
(2)删除元素称为退栈运算;
(3)读栈顶元素是将栈顶元素给一个指定的变量,此时指针无变化
栈的顺序存储空间S(1:
m)是有限的,S(bottom)为栈底元素(非空情况下),S(top)为栈顶元素.top=0表示栈空;
top=m表示栈满
队列:
是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
rear指针指向队尾,front指针指向队头。
队列组织数据规则:
是“先进先出”(FIFO)或“后进后出”(LILO)的线性表
队列运算包括
(1)入队运算:
从队尾插入一个元素;
(2)退队运算:
从队头删除一个元素
注意:
栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除
线性链表
数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点
结点由两部分组成:
(1)用于存储数据元素值,称为数据域;
(2)用于存放指针,称为指针域,用于指向前一个或后一个结点
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构;
也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:
左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。
线性链表的基本运算:
查找、插入、删除。
插入、删除,需要用两个指针
树与二叉树
树是一种简单的非线性结构,所有元素之间具有明显的层次特性
在树结构中,每一个结点只有一个前件,称为父结点;
没有前件的结点只有一个,称为树的根结点,简称树的根;
每一个结点可以有多个后件,称为该结点的子结点;
没有后件的结点称为叶子结点;
一个结点所拥有的后件的个数称为该结点的度;
所有结点中最大的度称为树的度;
树的最大层次称为树的深度。
二叉树的基本性质:
1.在二叉树的第k层上,最多有2(k1)个结点;
2.2.深度为m的二叉树最多有2m-1个结点;
3.3.度为0的结点(即叶子结点)总是比度为2的结点多一个;
4.4.具有n个结点的二叉树,其深度至少为[log2n]+1,
其中[log2n]表示取log2n的整数部分;
5.具有n个结点的完全二叉树的深度为[log2n]+1;
6.设完全二叉树共有n个结点。
如果从根结点开始,按层序(每一层从左到右)用自然数1,2,……n给结点进行编号(k=1,2……n),有以下结论:
完全二叉树:
除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点
a)若k=1,则结点为根结点,它没有父结点;
若k>
1,则该结点的父结点编号为INT(k/2);
b)若2kn,则编号为k的结点左子编号为2k;
否则该结点无左子结点(也无右子结点);
c)若2k+1n,则编号为k的结点的右子结点编号为2k+1;
否则该结点无右子结点。
满二叉树:
除最后一层外,每一层上的所有结点有两个子结点,则k层上有2个结点深度为m的满二叉树有2m-1个结点。
二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。
二叉树的遍历:
1.前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;
2.中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;
3.后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。
前序:
“根左(根左右)右(根左右)”
FCADBEGHP
中序:
“左(左根右)根右(左根右)”
ACBDFEHGP
后序:
“左(左右根)右(左右根)根”
ABDCHPGEF
查找技术
顺序查找:
从第一个开始,逐个查找比较至结束。
一般适用于:
(1)线性表(它是一个无序表);
(2)采用链式存储结构的表
二分法查找:
只适用于顺序存储的有序表,从中间比较,确定属于左半区域还是右半区域;
再在所在区域比较,再确定是……至查找结束。
对于长度为n的有序线性表并且顺序存储的,用二分法进行查找,最坏情况只需比较log2n次。
而顺序查找则需要n次。
排序技术
排序:
是指将一个无序序列整理成按值非递减顺序排列的
有序序列
交换类排序法:
(1)冒泡排序法:
取第一和第二个元素比较,小者放在前,大者放在后面;
再取大的与紧跟的下一元素比较,小的放在前,大的放在后,……,表中最大的被放到最后;
再取第一和第二个元素比较,……,比前一圈少比一次;
……,需要比较的次数为n(n-1)/2;
(2)快速排序法:
取个元素,按值将表一分为二,左边小于该值,右边大于该值;
再取左边表中元素,按值将左表再一分为二,……;
再取右边表中元素,按值将左表再一分为二,……,直到所有子表为空。
插入类排序法:
(1)简单插入排序法:
无序表的第一个元素可看成是一个有序的子表,把后面的元素逐个插入到这个有序表中。
最坏情况需要n(n-1)/2次比较。
(2)希尔排序
无序表长度n,取相隔某个增量h的元素(二二进行比较,小换到前,大换到后)构成一个子序列;
逐次减小这个增量,进行比较和交换;
(h的取值:
hi=n/2k,k=1,2,……[log2n])
注意:
最后当h=1时,进行一次插入排序,就完成了整个排序。
最坏情况需要O(n1.5)次比较(排序效率与增量序列有关).
选择类排序法:
(1)简单选择排序法:
从表中先出最小的元素,换到第一个位置,然后在剩余的子表中采用同样的方法,直到子表为空。
最坏情况需要n(n-1)/2次比较;
(2)堆排序法
以完全二叉树来表示堆:
树中所有非叶子结点值均不小于其左、右子树的根结点值,堆顶(树的根结点)元素为序列的n个元素中的最大项。
根据堆的定义,可以得到堆排序的方法:
1.首先将一个无序序列建成堆
2.然后将堆顶元素(最大)与堆中最后一个元素交换(最大应在序列最后)。
考虑n-1个元素构成的子序列,再建成堆(用调整堆的算法),反复第2步,直到子序列为空。
第二章程序设计基础
2.1程序设计设计方法和风格
如何形成良好的程序设计风格
1、源程序文档化;
2、数据说明的方法;
3、语句的结构;
4、输入和输出
注释分序言性注释和功能性注释,语句结构清晰第一、效率第二。
2.2结构化程序设计
结构化程序设计方法的四条原则是:
1、自顶向下;
2、逐步求精;
3、模块化;
4、限制使用goto语句。
结构化程序的基本的特点:
(1)顺序结构:
一种简单的程序设计,最基本最常用的结构;
(2)选择结构:
又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断选择哪一条分支来执行相应的语句序列;
(3)重复结构:
又称循环结构,可根据给定条件,判断是否需要重复执行某一相同程序段。
2.3面向对象的程序设计
面向对象的程序设计:
以60年代末挪威奥斯陆大学和挪威计算机中心研制的SIMULA语言为标志。
面向对象方法的优点:
(1)与人类习惯的思维方法一致;
(2)稳定性好;
(3)可重用性好;
(4)易于开发大型软件产品;
(5)可维护性好。
对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
属性即对象包含的信息,操作描述了对象执行的功能,操作也称为方法或服务。
对象的基本的特点:
(1)标识惟一性;
(2)分类性;
(3)多态性;
(4)封装性;
(5)模块独立性好。
类是指具有共同属性、共同方法的对象的集合。
所以类是对象的抽象,对象是对应类的一个实例。
消息是一个实例与另一个实例之间传递的信息。
消息的组成包括
(1)接收消息的对象的名称;
(2)消息标识符,也称消息名;
(3)零个或多个参数。
继承是指能够直接获得已有的性质和特征,不必重复定义他们。
继承分单继承和多重继承。
单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类。
多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。
第