#include <iostream>
#include<cstdlib>
#include<math.h>
#include <string>
#include<cstdlib>
using namespace std;
class adj_node
{
public:
int index;
adj_node *next;
inline adj_node()
{
next = NULL;
}
inline adj_node(adj_node * next_)
{
next = next_;
}
inline adj_node(int p, adj_node* next_ = NULL)
{
index = p;
next = next_;
}
};
class vex_node
{
public:
int x;
int y;
adj_node *next;
inline vex_node()
{
next = NULL;
}
inline vex_node(int x_, int y_, adj_node *next_ = NULL)
{
x = x_;
y = y_;
next = next_;
}
};
class graph
{
public:
vex_node * vex_table;
int vex_num;
int distance;
bool *tag;
string answer;
//按照顶点数和默认距离构造图
inline graph(int vex_num_,int distance_)
{
tag = new bool[vex_num_];
vex_num = vex_num_;
distance = distance_;
vex_table = new vex_node[vex_num_];
for (int i = 0; i < vex_num; i++)
{
tag[i] = 0;
}
}
//插入坐标为(x y)的顶点 并和该顶点周围距离小于dist