64,701
社区成员
发帖
与我相关
我的任务
分享
#include <vector>
#include <algorithm>
using namespace std;
struct node
{
int index;//节点序号
int degree;//节点度
};
class matrix
{
public:
matrix();
~matrix();
vector<node> sort_degree();
bool compare_degree(node node_a, node node_b);
private:
vector<node> nodes;
};
bool compare(node node_a, node node_b);
matrix::matrix()
{
}
matrix::~matrix()
{
}
bool matrix::compare_degree(node node_a, node node_b)
{
//按照节点度降序排列
return (node_a.degree > node_b.degree);
}
bool compare(node node_a, node node_b)
{
//按照节点度降序排列
return (node_a.degree > node_b.degree);
}
vector<node> matrix::sort_degree()
{
vector<node> temp_nodes = nodes;
//根据compare_degree规定的规则对数组内的节点排序
sort(temp_nodes.begin(), temp_nodes.end(), compare_degree);
sort(temp_nodes.begin(), temp_nodes.end(), compare);
return temp_nodes;
}
int main(void)
{
matrix G;
vector<node> G_degree_rank;
G_degree_rank = G.sort_degree();
}