并查集类定义与构造函数实现C++数据结构
集合操作里,并查集是个挺常用又不太复杂的结构,适合元素分组、连通性这类问题。像你要做社交圈分组、图里找连通块,Sets
类就挺好用。
这个类的构造函数还蛮直接,初始化一个大小为sz
的一维数组,每个元素的parent
默认都是-1
,表示它自己就是集合的代表。简单暴力,但效率高。
代码也比较清爽:
Sets::Sets(int sz = DefaultSize) {
n = sz;
parent = new int[sz];
for (int i = 0; i < n xss=removed>
注意哦,parent
是个裸指针,记得写析构函数,不然容易内存泄露。还有,不妨考虑用 vector 来替代原始数组,代码更安全。
你要是刚上手 数据结构,建议先把并查集吃透,后面做图相关的算法会轻松不少。嗯,还有时间的话,可以顺手看看树结构的类实现,对理解整个集合系统也蛮有的。
4.19MB
文件大小:
评论区