QuickUnion.cpp:101:1:在输入结束时预期'}'错误

时间:2017-02-03 03:33:23

标签: c++ linux union-find

执行一个简单的程序来实现Quick Union算法时,我遇到了这个错误。我发现花括号没有任何问题。我已经发布了以下代码。请仔细阅读。

#include <iostream>
#include <fstream>

#ifdef _WIN32
#define WINPAUSE system("pause")
#endif
#include <cstdio>
#include <ctime>
using namespace std;

class QuickUnionUF
{
private:
    int arr[9000];

public:
    QuickUnionUF()
    {
        for (int k = 0; k < 9000; k++)
            arr[k] = k;
    }

public:
    int find_root(int i)
    {
        while (i != arr[i])
            i = arr[i];
        return i;
    }

public:
    bool connected(int p, int q)
    {
        if (find_root(p) == find_root(q))

            return true;
        else
            return false;
    }

public:
    void union_function(int p, int q)
    {

        int i = find_root(p);
        int j = find_root(q);
        arr[i] = j;
    }
};

int main()
{

    clock_t start = clock();
    //int id[9000];
    //for (int i = 0; i < 9000; i++)
    //  id[i] = i;
    const char* filename = "mine";
    ifstream inFile(filename);

    int p, q;

    if (!inFile) {
        cout << endl
             << "File cannot be opened " << filename << "\n";
        return 1;
    }

    QuickUnionUF QU = QuickUnionUF();

    int select;

    while (!inFile.eof())
    {
        inFile >> p;
        inFile >> q;
        cout << "elemnets taken :" << p << " " << q << " ";

        //cout << " " << p;// << " " << q;
        if (QU.connected(p, q)) {
            cout << "already connected \n";
            continue;
        }

        else {
            QU.union_function(p, q);
            cout << "connectin" << p << " " << q << " \n";
        }
    }

    inFile.close();

    clock_t end = clock();
    double time = ((double)(end - start)) / CLOCKS_PER_SEC;
    cout << endl
         << "time " << time << endl;

    cout << "\n";

    return 0;
}

0 个答案:

没有答案