浏览代码

Better example

Marcelo Fornet 5 年之前
父节点
当前提交
55b4529735
共有 1 个文件被更改,包括 18 次插入5 次删除
  1. 18 5
      main.cpp

+ 18 - 5
main.cpp

@@ -5,22 +5,35 @@
 
 using namespace std;
 
+void print(DisjointSet *ds)
+{
+    cout << ds->root(0) << " " << ds->size(0) << " " << ds->root(1) << " " << ds->size(1) << endl;
+}
+
 int main()
 {
     ios_base::sync_with_stdio(0);
     cin.tie(0);
 
     auto ds = disjoint_set()->with_undo()->init(2);
-
-    cout << ds->root(0) << " " << ds->size(0) << " " << ds->root(1) << " " << ds->size(1) << endl;
+    print(ds);
 
     ds->merge(0, 1);
-
-    cout << ds->root(0) << " " << ds->size(0) << " " << ds->root(1) << " " << ds->size(1) << endl;
+    print(ds);
 
     ds->undo();
+    print(ds);
 
-    cout << ds->root(0) << " " << ds->size(0) << " " << ds->root(1) << " " << ds->size(1) << endl;
+    // This disjoint set doesn't build history vector
+    ds = disjoint_set()->init(2);
+    print(ds);
+
+    ds->merge(0, 1);
+    print(ds);
+
+    // This is runtime error since this disjoint set doesn't implement undo
+    // ds->undo();
+    // print(ds);
 
     return 0;
 }