LeetCode上的树与图的深度优先搜索(DFS)和广度优先搜索(BFS)
发布时间
阅读量:
阅读量
参考:
lzh的笔记
树与图的存储结构:邻接表
鉴于树结构属于图的一种特殊形式,因此在存储树时同样采用邻接表或邻接图的方式。邻接表的定义是针对图中的每一个节点,通过单链表的形式来记录其相邻的节点信息。

为表示邻接点,我们需要使用h[], e[], ne[], idx这几个变量:
- h[v] : 表示与节点v相关的链表的起始节点需特别注意初始化时应设置为-1
- e[i] : 用于存储第i个节点对应的值v(实现下标与值之间的映射关系)
- ne[i] : 在邻接表链表中,表示i节点的后续节点
- idx : 记录当前处理到的节点索引,当所有边都插入完毕后,idx即代表总节点数量
在将节点b插入到节点a之后的操作如下:
此时idx表示当前处理的节点即为b,因此e[idx] = b
采用头插法将该节点插入到a对应的邻接表中,由于h[a]是a的邻接表起始位置,因此ne[idx] = h[a]
最终,该邻接表的起始位置更新为新插入的节点b
private static void add(int a,
全部评论 (0)
还没有任何评论哟~
