CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 6 of 6
  1. #1
    Join Date
    Aug 2012
    Posts
    28

    Error: infinite loop in my code(Depth First Search)

    I code the algorithm Depth First Search, but it infinite loop, what did i wrong?
    Code:
    #include <iostream>
    #include <vector>
    using std::cout;
    using std::cin;
    using std::endl;
    const int maxx = 20;
    void Read_input_from_user(bool grid[][maxx], int vertices)
    {
        int u, v;
        for(int x = 0; x < vertices; ++x)
        {
            cout << "Enter u : \t"; 
            cin >> u;
            u--;
            cout << "Enter v : \t";
            cin >> v;
            v--;
            grid[u][v] = true;
            grid[v][u] = true;
            cout << "---------------------\n";
        }
    } 
    
    void Depth_first_search(bool grid[][maxx], std::vector<int> &trace, 
                            int nodes, int u) 
    {
    	
    	
        for(int v = 0; v < nodes; ++v)
        {
            if((grid[u][v] == true) && trace[v] == 0)
            {
    			
                trace[v] = u;
    			
                //recursive step
                Depth_first_search(grid, trace, nodes, v);
    			
            }
        }
    }
    
    void Trace_result(std::vector<int> &trace, int start, int end, int nodes) 
    {   
        cout << "From _nodes" << start + 1 << " you can visit :\n";
        for(int v = 0; v < nodes; ++v)
        {
            if(trace[v] != 0)
            {
                cout << " _nodes : " << v + 1 << " , ";
            }
        }
    
        cout << "\n--------------------------------------------\n";
        cout << "The path from " << start + 1 << " to " << end + 1 << '\n';
        
        if(trace[end] == 0){
            cout << "Unavailable.! to go to from " << end + 1 
                 << " to -> " << start + 1 << '\n';
        }
        else{
            while(end != start)
            {
                cout << end + 1 << "<-";
                end = trace[end];
            }
            cout << start + 1 << endl;
        } 
    }
    
    int main()
    {
        bool grid[maxx][maxx] = { false };
        std::vector<int> trace(maxx, 0);
        int nodes, vertices;
        cout << "Please input the number of Node : \n";
        cin >> nodes;
        cout << "Please input the number of Vertices : \n";
        cin >> vertices;
    
        //Set value for all vertices.
        Read_input_from_user(grid, vertices); 
    
        //Read the necessary path
        int starting_position, finishing_position;
        cout << "Please Input the Starting Node : \n";
        cin >> starting_position;
        cout << "Please Input the Finishing Node : \n";
        cin >> finishing_position;
        //Decrease to fit with index of C++ start from 0->size-1
        starting_position--;
        finishing_position--; 
    
        Depth_first_search(grid, trace, nodes, starting_position); 
        Trace_result(trace, starting_position, finishing_position, nodes);
    	system("pause");
        return 0;
    }
    I'm wrong in: Depth_first_search, is't it?

  2. #2
    Join Date
    Dec 2008
    Posts
    144

    Re: Error: infinite loop in my code(Depth First Search)

    The first thing I notice is that you have "++v" in the declaration of your For loop. It should be "v++"

    I'm just glancing over your code, but that error could be preventing the incrementation of the v variable, which would cause the infinite loop.
    Code:
    if (Issue.Resolved)
    {
         ThreadTools.Click();
         MarkThreadResolved();
    }

  3. #3
    Join Date
    Aug 2012
    Posts
    28

    Re: Error: infinite loop in my code(Depth First Search)

    Quote Originally Posted by CreganTur View Post
    The first thing I notice is that you have "++v" in the declaration of your For loop. It should be "v++"

    I'm just glancing over your code, but that error could be preventing the incrementation of the v variable, which would cause the infinite loop.
    No, not wrong this, can you test on your VS and tell me something else???

  4. #4
    Join Date
    Aug 2012
    Posts
    28

    Re: Error: infinite loop in my code(Depth First Search)

    Quote Originally Posted by CreganTur View Post
    The first thing I notice is that you have "++v" in the declaration of your For loop. It should be "v++"

    I'm just glancing over your code, but that error could be preventing the incrementation of the v variable, which would cause the infinite loop.
    No, not wrong this, can you test on your VS and tell me something else???

  5. #5
    Join Date
    Oct 2004
    Location
    Rocket City
    Posts
    220

    Re: Error: infinite loop in my code(Depth First Search)

    what did i wrong?
    You posted your question in the C-Sharp Form. This is not C-Sharp code.

  6. #6
    Join Date
    Aug 2012
    Posts
    28

    Re: Error: infinite loop in my code(Depth First Search)

    Quote Originally Posted by zips View Post
    You posted your question in the C-Sharp Form. This is not C-Sharp code.
    Oh my god, >"< I'm Sorry, >"<, let me move.
    Close please.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured