计算机二级C语言公共基础复习资料

时间:2020-10-30 17:29:38 计算机等级 我要投稿

2017年计算机二级C语言公共基础复习资料

  C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。下面是小编整理的关于计算机二级C语言公共基础复习资料,欢迎大家参考!

2017年计算机二级C语言公共基础复习资料

  循环链表及其基本运算

  在线性链表中,虽然对数据元素的插入和删除操作比较简单,但由于它对第一个结点和空表需要单独处理,使得空表与非空表的处理不一致。

  循环链表,即是采用另一种链接方式,它的特点如下:

  (1)在循环链表中增加一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。

  (2)循环链表中最后一个结点的指针域不是空的,而是指向表头结点。在循环链表中,所有结点的指针构成一个环状链。

  在循环链表中,只要指出表中任何一个结点的位置,均可以从它开始扫描到所有的结点,而线性链表做不到,线性链表是一种单向的链表,只能按照指针的方向进行扫描。

  循环链表中设置了一个表头结点,因此,在任何时候都至少有一个结点,因此空表与非空表的运算相统一。

  循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。

  【例】在链表上实现将两个线性表(a1,a2,…,an)和(b1,b2,…,bm)连接成一个线性表(a1,…,an,b1,…bm)的运算。

  分析:若在单链表或头指针表示的单循环表上做这种链接操作,都需要遍历第一个链表,找到结点an,然后将结点b1链到an的后面,其执行时间是O(n)。

  若在尾指针表示的单循环链表上实现,则只需修改指针,无须遍历,其执行时间是O(1)。

  相应的算法如下:

  LinkListConnect(LinkListA,LinkListB){

  //假设A,B为非空循环链表的尾指针

  LinkListp=A->next;//①保存A表的头结点位置

  A->next=B->next->next;//②B表的开始结点链接到A表尾

  free(B->next);//③释放B表的头结点

  B->next=p;//④

  returnB;//返回新循环链表的尾指针

  }

  注意:

  ①循环链表中没有NULL指针。涉及遍历操作时,其终止条件就不再是像非循环链表那样判别p或p->next是否为空,而是判别它们是否等于某一指定指针,如头指针或尾指针等。

  ②在单链表中,从一已知结点出发,只能访问到该结点及其后续结点,无法找到该结点之前的.其它结点。而在单循环链表中,从任一结点出发都可访问到表中所有结点,这一优点使某些运算在单循环链表上易于实现。

  二叉树的遍历

  二叉树的遍历即是不重复地访问二叉树的所有结点。

  在遍历二叉树时,一般先遍历左子树,然后再遍历右子树。在先左后右的原则下,二叉树的遍历又可分为三种:前序遍历、中序遍历和后序遍历。

  1)前序遍历

  前序遍历即先访问根结点,然后遍历左子树,最后遍历右子树。在遍历左子树和遍历右子树时,依然是先遍历根结点,然后是左子树,再是右子树。

  操作的具体方式:

  若二叉树为空,则结束返回。

  否则:访问根结点前序遍历左子树前序遍历右子树

  如上图所示的完全二叉树,它的前序遍历结果是:A、B、D、H、P、Q、I、R、E、J、K、C、F、L、M、G、N、O

  2)中序遍历

  中序遍历,即先遍历左子树,然后访问根结点,最后是遍历右子树。

  具体的操作方式:

  若二叉树为空,则结束返回。

  否则:中序遍历左子树访问根结点 中序遍历右子树

  这里强调,在遍历左子树和右子树时,仍然要采用中序遍历的方法。

  如上图所示的完全二叉树,它的中序遍历结果是:P、H、Q、D、R、I、B、J、E、K、A、L、F、M、C、N、G、O

  3)后序遍历

  后序遍历,即选遍历左子树,然后是遍历右子树,最后访问根结点。

  具体的操作方式:

  若二叉树为空,则结束返回。

  否则:前序遍历左子树前序遍历右子树访问根结点

  如上图所示的完全二叉树,它的后序遍历结果是:P、Q、H、R、I、D、J、K、E、B、L、M、F、N、O、G、C、A

【2017年计算机二级C语言公共基础复习资料】相关文章:

1.2017年计算机二级C语言考点复习资料

2.2017年计算机C语言基础考题

3.2017年计算机二级C语言基础考试试题

4.2017下半年计算机二级c语言基础试题

5.2017年计算机二级c语言背题库

6.2017年计算机二级C语言考点归纳

7.2017年计算机二级C语言复习材料

8.2017年下半年计算机二级C语言复习资料

9.计算机二级C语言复习资料