学习笔记——细碎知识点
1.循环队列:
队头的指针往往指向队首元素的前一个位置,队尾指针指向队尾元素
or 队头的指针指向队首元素,队尾指针指向队尾元素的下一个。
//代码实现
int EnQueue(SqQueue *Q, QElemType e)
{
//队尾指向尾元素的下一个
//所以用数组data[n]做循环队列的存储最多存n个元素
if ((Q->real+1)%MAXSIZE == Q->front)/*队列满的判断*/
return 0;
Q->data[Q->rear+1] = e;
Q->rear = (Q->rear+1) % MAXSIZE;
return 1;
}
2.括号表示法字符串构造二叉树
3.树、森林与二叉树的转换
4.线索二叉树
5.哈夫曼树/哈夫曼编码
6.图的度
无向图的单个节点的度就是他连的边
有向图的度是单个节点的入度+出度
7.最小生成树
简单说,就是一个图内所有节点作为图的节点,要求任意两个节点之间都有路径,但是不会形成环,并且路径上有权重,要求权重之和最小
n个节点对应n-1条边
极小连通子图:
博客
博客
1.一个连通图的生成树是该连通图顶点集确定的极小连通子图。( 极小连通子图为某一顶点子集所确定的连通子图中包含边最少的连通子图)(n个顶点,无向连通图最少n-1条边,有向连通图最少n条边——成环)(同一个连通图可以有不同的生成树,所以生成树不是唯一的)
(极小连通子图只存在于连通图中)
2.用边把极小连通子图中所有节点给连起来,若有n个节点,则有n-1条边。如下图生成树有6个节点,有5条边。
3.之所以称为极小是因为此时如果删除一条边,就无法构成生成树,也就是说给极小连通子图的每个边都是不可少的。
4.如果在生成树上添加一条边,一定会构成一个环。
只要能连通图的所有顶点而又不产生回路的任何子图都是它的生成树。
8.Prime算法(适用稠密图)
9.Kruskal算法(适用稀疏图)
10.路径问题
A*算法
Dijkstra算法
浙公网安备 33010602011771号