线性链表在插入过程中不发生数据元素移动的现象 , 只需改变有关结点的指针即可,从而提高了插入的效率 。
从线性链表的删除过程可以看出 , 在线性链表中删除一个元素后,不需要移动表的数据元素,只需改变被删除元素所在结点的前一个结点的指针域即可 。
1.5.3循环链表及其基本运算 (P25—P26)
循环链表具有以下两个特点:
(1)在循环链表中增加了一个表头结点,指针域指向线性表的第一个元素的结点 。循环链表的头指针指向表头结点 。
(2)循环链表中最后一个结点的指针域不是空,而是指向表头结点 。即在循环链表中,所有结点的指针构成了一个环状链 。
1. 6树与二叉树
1.6.1树的基本概念 (P26—P28)
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称为树的根 。
在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点 。没有后件的结点称为叶子结点 。
在树结构中,一个结点所拥有的后件个数称为该结点的度
在树中,所有结点中的最大的度称为树的度 。
根结点在第1层 。
树的最大层次称为树的深度 。
1.6.2二叉树及其基本性质 (P28—P31)
1.什么是二叉树
二叉树具有以下两个特点:
①非空二叉树只有一个根结点;
②每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树 。
2.二叉树的基本性质
性质1在二叉树的第K层上,最多有2K-1(K≥1)个结点 。
性质2深度为m的二叉树最多有2m-1个结点 。
性质3在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个 。
3.满二叉树与完全二叉树
(1)满二叉树
所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点 , 这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第K层上有2K-1个结点,且深度为m的满二叉树有2m-1个结点 。
(2)完全二叉树
所谓完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边若干结点 。
满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树 。
性质6设完全二叉树共有n个结点 。从根结点开始,按层序用自然数1,2,…,n给结点进行编号,则对于编号为k(k=1,2,…,n)的结点有以下结论:
①若k=1,则该结点为根结点,它没有父结点;若k1 , 则该结点的父结点编号为INT(k/2) 。
②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点 。
③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点 。
1.6.3二叉树的存储结构 (P31—P32)
在计算机中,二叉树通常采用链式存储结构 。
1.6.4二叉树的遍历 (P32—P33)
二叉树的遍历可以分为三种:前序遍历、中序遍历、后序遍历 。
1.前序遍历(DLR)
2.中序遍历(LDR)
3.后序遍历(LRD)
1.7查找技术
1.7.1顺序查找 (P33)
顺序查找又称顺序搜索 。
对于大的线性表来说,顺序查找的效率是很低的 。虽然顺序查找的效率不高,但在下列两种情况下也只能采用顺序查找:
(1)线性表无序表,则不管是顺序存储结构还是链式存储结构,都只能用顺序查找 。
(2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找 。
1.7.2二分法查找 (P33—P34)
二分法查找只适用于顺序存储的有序表 。
推荐阅读
- 节拍器下载,架子鼓节拍器下载
- flutter打包手机打不开,flutter打包ios并上架
- 电脑连接硬盘怎么连,电脑硬盘的连接
- mysql消耗过大怎么办 mysql耗cpu
- Python中个标点符号作用,python中标点符号的用法
- 直播加加为什么卡,直播加加直播有声音吗
- 游戏革命开发,革命时代游戏
- php原生语句查询数据库 php原生类
- mongodb索引慢,mongo索引调优