主页 > 教育培训 > 正文

计算机公共基础知识 考试重点与经验分析(2)

[作者:杨叫伴]
2010-08-05 11:18

6.栈与队列
要深刻领会二者的概念,以及对二者进行插入、删除运算的特点,这是考试的重点。
栈实际上也是线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,其插入与删除运算都只在线性表的一端进行。即在这种线性表的结构中,一端是封闭的,不允许进行插入与删除元素;另一端是开口的,允许插入与删除元素。允许插入与删除运算的一端称为栈顶,而不允许插入与删除运算的一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”(First In Last Out,FILO)或“后进先出”(Last In First Out,LIFO)的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。由此可以看出,栈具有记忆作用。对栈常可以进行进栈、出栈、读取栈顶元素的运算。
队列是指允许在一端进行插入运算、而在另一端进行删除运算的线性表。允许插入运算的一端称为队尾,通常用一个称为队尾指针的指针指向队尾元素,即队尾指针总是指向最后被插入的元素。允许删除运算的一端称为队头,通常也用一个队头指针指向队头的元素。显然,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。因此,队列又称为“先进先出”(First In First Out,FIFO)或“后进后出”(Last In Last Out,LILO)的线性表。对队列可以进行入队、退队运算。
7.循环队列
重点注意循环队列的概念、存储方式。
循环队列是队列顺序存储结构的一种,它将m个物理上连续的存储单元,在逻辑上形成一个环状,供队列循环使用。
具体来说,在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置,因此,从队头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。
8.线性表的链式存储结构(线性链表)
(1)线性表的链式存储结构及其有关运算
在线性表的链式存储结构中,一个元素用一个结点来存储,每个结点含有两个域,一个数据域用于存放数据元素值,一个指针域,用于存放指针,该指针用于指向该结点的前一个或后一个结点(即前件或后件)。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序(即存储空间位置)与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。要特别注意,线性表的链式存储结构与顺序存储结构方式的不同。
线性表的链式存储结构又称为线性链表。
对线性链表的运算主要包括:查找指定元素、插入、删除运算等。不像顺序存储结构那样,对线性链表的插入与删除运算不需要移动数据元素,而只需改变有关结点的指针即可。
(2)循环链表
在对线性链表进行运算的过程中,虽然其插入与删除运算比较方便,但还存在一个问题,即对于空表和对第一个结点的处理必须单独考虑,使空表与非空表的运算不统一。为了克服线性链表的这个缺点,可以采用另一种链接方式,即循环链表的结构,使整个链成为一个环状结构。在此,需要注意线性链表与循环链表在存储方式上的不同。
循环链表的结构与线性链表相比,具有以下两个特点:
① 在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。
② 循环链表中最后一个结点的指针域不是空,而是指向表头结点。即在循环链表中,所有结点的指针构成了一个环状链。
9.树与二叉树
树是一种非线性结构,在这种结构中,所有数据元素之间的关系具有明显的层次特性。而二叉树也是一种非线性结构,它与树结构相似,并且树结构的所有术语都可以用到二叉树这种数据结构上。
二叉树具有以下两个特点:
① 非空二叉树只有一个根结点。
② 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
因此,二叉树中每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树。
对于二叉树,其概念与性质是考试的重点。要特别注意二叉树的有关性质。
10.满二叉树与完全二叉树
满二叉树与完全二叉树是两种特殊形态的二叉树,对这两种二叉树的概念上的理解是考试的重点。
(1)满二叉树
满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点,也就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层有2k–1个结点,且深度为m的满二叉树有2m–1个结点。
(2)完全二叉树
完全二叉树是这样的二叉树,除最后一层外,每一层上的结点数均达到最大值。
11.二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中的所有结点。二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历。这三种遍历方式是每次考试的重点,要求对于某一棵二叉树应能写出对应的遍历序列。
(1)交换类排序法
交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序法与快速排序法都属于交换类排序方法。
冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n–1)/2。但这个工作量不是必需的,一般情况下要小于这个工作量。
快速排序法也是一种交换类的排序方法,但由于它比冒泡排序法的速度快,因此称之为快速排序法。其关键是对线性表进行分割,以及对各分割出的子表再进行分割。

猜你喜欢

编辑推荐

相关内容

推荐阅读

加载中...
没有更多了
X