25.4.30数据结构|并查集 路径压缩
前言
在QuickUnion快速合并的过程中,每次都要找根ID,而路径压缩让找根ID变得更加迅速直接。
路径压缩 针对的是findRootIndex()【查找根ID】进行的压缩。
需要实现的是:
在找根节点的过程中,记录这条路径上的所有信息,处理完事务后,恢复保存的节点信息,恢复父节点的关系
使用宏定义???
#ifndef、#else 和 #endif 是 C、C++ 等编程语言中的预处理指令,主要用于条件编译。
- #ifndef:这是 "if not defined" 的缩写,其作用是检查某个宏是否未被定义。要是该宏未定义,就会执行 #ifndef 和 #else(若存在)或者 #endif 之间的代码;反之,则跳过这些代码。
- #else:当 #ifndef 条件不满足时,也就是宏已经被定义,就会执行 #else 和 #endif 之间的代码。
- #endif:用于标志条件编译块的结束,和 #ifndef 配对使用。
(没搞明白vs宏代换的配置)
链式存储,链栈(只需要维护栈顶指针),链式队列(需要维护队头队尾)
对查找根ID函数进行操作:
对于每一个节点,
把他的索引放到栈里,
并记录了先后顺序
![]()
未完待续。。。。。。