是个程序员就不用多啰嗦了
所谓的稀疏矩阵,就是当前矩阵中的大量元素是0或者是大量元素是同一个值,这时候我们只用存储一少部分不同的值。节省了空间
例题 用代入法代入排除选项
开辟连续的存储空间,采用一维数组的形式存
开辟离散的空间,每一个节点分为数据域和指针域
删除节点 p->next = q->next
插入节点
s-next = p->next; p->next =s;
单链表有头结点的有优点
有头节点可以让单链表所有节点的操作方式一致,
每个节点的子节点的度小于等于2,整棵树,没有缺失的部分,非常完整
相对于慢二叉树只会缺失右下角的节点
按第一层到最后一层的遍历一遍, 1 2 3 4 5 6 7 8(上图层次遍历后的顺序 )
前序遍历指先访问根节点,再访问左子树和右子树节点 1 2 4 5 7 8 3 6
先访问左子树节点,再访问根节点,最后访问右子树节点 4 2 7 8 5 1 3 6
先访问左子树节点,再访问右子树节点,最后访问根节点 4 7 8 5 2 6 3 1
由前序遍历的序列得到A必定是根节点,再由中序遍历得: B和H的位置轻松得到如下图:
树转二叉树的主要特征:
一个树的孩子节点 都会成为它的左子树节点 一个树的兄弟节点 都会成为它的右子树节点
对于每棵树的根节点的左子树节点要比根节点小,右子树节点要比根节点大,叫做查找二叉树,或者排序二叉树,能够极大的提高查找的效率
将现有节点组成的带权路径最小的树
数的路径长度,就是层数减一权值:节点上的标数 求所有叶子节点的带权路径长度的和,就是哈夫曼树的带权路径长度二叉树的会空闲大量的指针,可以利用起来,方便遍历。产生了线索二叉树
线索二叉树的左线索指针直线前序遍历循序的前驱节点,右线索指针指向他的后驱节点。
上面说过的查找二叉树,在统一序列下可能会产生不同形状的二叉树: 如下面两棵同一序列的二叉树,右边的树更加饱满,左右更加平衡,所以的查找效率较高。这里就产生了平衡二叉树的概念:任意节点的左右子树深度相差不超过1.每个节点的平衡度只能为-1,0,1
平衡度 = 左子树的深度 - 右子树的深度
依次选出从红点集到蓝点集最短的一条边,不形成环
选5条最小边
