And this code:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
private const int maxx = 20;
void Read_input_from_user(bool[,] grid, int vertices)
{
int u;
int v;
for (int x = 0; x < vertices; ++x)
{
Console.Write("Enter u : \t");
u = Convert.ToInt32(Console.ReadLine());
u--;
Console.Write("Enter v : \t");
v = Convert.ToInt32(Console.ReadLine());
v--;
grid[u, v] = true;
grid[v, u] = true;
Console.Write("---------------------\n");
}
}
void Breadth_first_search(Queue<int> Q, List<int> trace, bool[,] grid, int start, int nodes)
{
int u;
List<int> visited = new List<int>(maxx);
Q.Enqueue(start);
trace[start] = -1;
visited[start] = 1;
do
{
u = Q.Peek();
Q.Dequeue();
for (int v = 0; v < nodes; ++v)
{
if ((grid[u, v] == true) && visited[v] == 0)
{
Q.Enqueue(v);
trace[v] = u;
visited[v] = 1;
}
}
} while (Q.Count > 0);
}
void Trace_result(List<int> trace, int start, int end, int nodes)
{
Console.Write("From _nodes");
Console.Write(start + 1);
Console.Write(" you can visit :\n");
for (int v = 0; v < nodes; ++v)
{
if (trace[v] != 0)
{
Console.Write(" _nodes : ");
Console.Write(v + 1);
Console.Write(" , ");
}
}
Console.Write("\n--------------------------------------------\n");
Console.Write("The path from ");
Console.Write(start + 1);
Console.Write(" to ");
Console.Write(end + 1);
Console.Write('\n');
if (trace[end] == 0)
{
Console.Write("Unavailable.! to go to from ");
Console.Write(end + 1);
Console.Write(" to -> ");
Console.Write(start + 1);
Console.Write('\n');
}
else
{
while (end != start)
{
Console.Write(end + 1);
Console.Write("<-");
end = trace[end];
}
Console.Write(start + 1);
Console.Write("\n");
}
}
static int Main()
{
//Initialization
List<int> trace = new List<int>(maxx);
Queue<int> Q = new Queue<int>();
bool[,] grid = new bool[maxx, maxx];
int nodes;
int vertices;
Console.Write("Please input the number of Node : \n");
//cin >> nodes;
nodes = Convert.ToInt32(Console.ReadLine());
Console.Write("Please input the number of Vertices : \n");
//cin >> vertices;
vertices = Convert.ToInt32(Console.ReadLine());
//Set value for all vertices.
Read_input_from_user(grid, vertices);
//Read the necessary path
int starting_position;
int finishing_position;
Console.Write("Please Input the Starting Node : \n");
//cin >> starting_position;
starting_position = Convert.ToInt32(Console.ReadLine());
Console.Write("Please Input the Finishing Node : \n");
//cin >> finishing_position;
finishing_position = Convert.ToInt32(Console.ReadLine());
//Decrease to fit with index of C++ start from 0->size-1
starting_position--;
finishing_position--;
//Algorithm starts
Breadth_first_search(Q, trace, grid, starting_position, nodes);
Trace_result(trace, starting_position, finishing_position, nodes);
return 0;
}
}
}
But error in 3 procedure:
Read_input_from_user(grid, vertices);
Breadth_first_search(Q, trace, grid, starting_position, nodes);
Trace_result(trace, starting_position, finishing_position, nodes);
Error 3 An object reference is required for the non-static field, method, or property 'ConsoleApplication1.Program.Trace_result(System.Collections.Generic.List<int>, int, int, int)' C:\Users\Longbottom-up\Desktop\thu\ConsoleApplication1\ConsoleApplication1\Program.cs 127 13 ConsoleApplication1
Error 1 An object reference is required for the non-static field, method, or property 'ConsoleApplication1.Program.Read_input_from_user(bool[*,*], int)' C:\Users\Longbottom-up\Desktop\thu\ConsoleApplication1\ConsoleApplication1\Program.cs 111 13 ConsoleApplication1
Error 2 An object reference is required for the non-static field, method, or property 'ConsoleApplication1.Program.Breadth_first_search(System.Collections.Generic.Queue<int>, System.Collections.Generic.List<int>, bool[*,*], int, int)' C:\Users\Longbottom-up\Desktop\thu\ConsoleApplication1\ConsoleApplication1\Program.cs 126 13 ConsoleApplication1
I delete static, is that: int Main() , so not error in 3 procedure, i f5 and:
Error 1 Program 'C:\Users\Longbottom-up\Desktop\thu\ConsoleApplication1\ConsoleApplication1\obj\x86\Debug\ConsoleApplication1.exe' does not contain a static 'Main' method suitable for an entry point ConsoleApplication1
What's this?