计算机公共基础知识

[05-04 23:38:31]   来源:http://www.dxs51.com  网络基础知识   阅读:9802

概要:表的运算不统一。为了克服线性链表的这个缺点,可以采用另一种链接方式,即循环链表的结构,使整个链成为一个环状结构。在此,需要注意线性链表与循环链表在存储方式上的不同。循环链表的结构与线性链表相比,具有以下两个特点:① 在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。② 循环链表中最后一个结点的指针域不是空,而是指向表头结点。即在循环链表中,所有结点的指针构成了一个环状链。9.树与二叉树树是一种非线性结构,在这种结构中,所有数据元素之间的关系具有明显的层次特性。而二叉树也是一种非线性结构,它与树结构相似,并且树结构的所有术语都可以用到二叉树这种数据结构上。二叉树具有以下两个特点:① 非空二叉树只有一个根结点。② 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。因此,二叉树中每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树。对于二叉树,其概念与性质是考试的重点。要特别注意二叉树的有关性质。10.满二叉树与完全二叉树满二叉树与完全二叉树是两种特殊形态的二叉树,对这两种二叉树的概念上的理解是考试的重点。(1)满二叉树满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两

计算机公共基础知识,http://www.dxs51.com


线性表的链式存储结构又称为线性链表。
对线性链表的运算主要包括:查找指定元素、插入、删除运算等。不像顺序存储结构那样,对线性链表的插入与删除运算不需要移动数据元素,而只需改变有关结点的指针即可。

(责任编辑:计算机基础知识 www.dxs51.com) www.dxs51.com


(2)循环链表
在对线性链表进行运算的过程中,虽然其插入与删除运算比较方便,但还存在一个问题,即对于空表和对第一个结点的处理必须单独考虑,使空表与非空表的运算不统一。为了克服线性链表的这个缺点,可以采用另一种链接方式,即循环链表的结构,使整个链成为一个环状结构。在此,需要注意线性链表与循环链表在存储方式上的不同。
循环链表的结构与线性链表相比,具有以下两个特点:
① 在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。
② 循环链表中最后一个结点的指针域不是空,而是指向表头结点。即在循环链表中,所有结点的指针构成了一个环状链。
9.树与二叉树
树是一种非线性结构,在这种结构中,所有数据元素之间的关系具有明显的层次特性。而二叉树也是一种非线性结构,它与树结构相似,并且树结构的所有术语都可以用到二叉树这种数据结构上。
二叉树具有以下两个特点:
① 非空二叉树只有一个根结点。
② 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
因此,二叉树中每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树。
对于二叉树,其概念与性质是考试的重点。要特别注意二叉树的有关性质。
10.满二叉树与完全二叉树
满二叉树与完全二叉树是两种特殊形态的二叉树,对这两种二叉树的概念上的理解是考试的重点。


(1)满二叉树
满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点,也就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层有2k–1个结点,且深度为m的满二叉树有2m–1个结点。
(2)完全二叉树
完全二叉树是这样的二叉树,除最后一层外,每一层上的结点数均达到最大值。
11.二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中的所有结点。二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历。这三种遍历方式是每次考试的重点,要求对于某一棵二叉树应能写出对应的遍历序列。
12.顺序查找及其特点
需要重点掌握顺序查找的概念及查找的效率。
顺序查找又称顺序搜索。它从线性表的第一个元素开始,依次将线性表中的元素与被查元素进行比较,若相等则表示找到(即查找成功);若线性表中所有的元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。


很明显,在进行顺序查找过程中,在最好的情况下,如果线性表中的第一个元素就是被查元素,则只需做一次比较就查找成功,查找效率最高;但如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。在平均情况下,利用顺序查找法在线性表中查找一个元素,大约与线性表中一半的元素进行比较。


13.二分法查找及其特点
重点掌握二分法查找的适用对象、查找的方法与查找效率。
二分法查找只适用于顺序存储的有序表。此处的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相信元素值相等)。
设有序线性表的长度为n,被查元素为x,则二分查找的方法如下所述。
将x与线性表的中间项进行比较:
若中间项的值等于x,则说明查到,查找结束;
若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找;
若x大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找。
这个过程一直进行到查找成功或子表长度为0(说明线性没有这个元素)为止。
显然,当有序线性表为顺序存储时才能采用二分查找,并且,二分查找的效率要比顺序查找高得多。对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次。


14.排序技术
排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。常见的排序方法主要有交换类排序、插入类排序和选择类排序。各种排序方法的特点以及在最坏情况下的排序效率是考试的重点。
(1)交换类排序法
交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序法与快速排序法都属于交换类排序方法。
冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n–1)/2。但这个工作量不是必需的,一般情况下要小于这个工作量。


快速排序法也是一种交换类的排序方法,但由于它比冒泡排序法的速度快,因此称之为快速排序法。其关键是对线性表进行分割,以及对各分割出的子表再进行分割。
(2)插入类排序法
插入类排序法主要有简单插入排序法和希尔排序法。
简单插入排序法,是指将无序序列中的各元素依次插入到已经有序的线性表中。在这种排序方法中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n–1)/2次比较。
希尔排序法对简单插入排序做了较大的改进。它是将整个无序序列分割成若干小的子序列分别进行插入排序。希尔排序的效率与所选取的增量序列有关。在最坏情况下,希尔排序所需要的比较次数为O(n1.5)。


(3)选择类排序
选择类排序主要有简单选择类排序法和堆排序法。
简单选择排序法的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置);然后对剩下的子表采用同样的方法,直到子表空为止。对于长度为n的线性表,在最坏情况下需要比较n(n–1)/2次。

上一页  [1] [2] [3] [4] [5]  下一页


标签:网络基础知识网络基础大全,电脑网络知识电脑学习 - 网络技术 - 网络基础知识

《计算机公共基础知识》相关文章