并查集类定义与构造函数实现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 来替代原始数组,代码更安全。

你要是刚上手 数据结构,建议先把并查集吃透,后面做图相关的算法会轻松不少。嗯,还有时间的话,可以顺手看看树结构的类实现,对理解整个集合系统也蛮有的。

ppt 文件大小:4.19MB