这有点像我需要帮助的编码问题 - 首先是使用的结构:
typedef struct node {
char email[100];
} Node;
typedef struct edge {
Node *from_email, *to_email;
} Edge;
Node nodes[NODE_ARRAY_SIZE];
Edge edges[EDGE_ARRAY_SIZE];
因此,如您所见,“节点”结构包含一个带有电子邮件的 char 数组,“边缘”结构包含指向 2 个不同节点的指针。还有两个数组,一个是 Nodes,一个是 Edges。
我想 qsort() 两个数组 - 我已经使用以下节点完成了一个:
qsort(nodes, node_size, sizeof(Node), node_cmp_function);
int node_cmp_function(const void *a, const void *b) {
Node *temp_a = (Node *)a;
Node *temp_b = (Node *)b;
return strcmp(temp_a->username, temp_b->username);
}
但我不知道如何对 Edges 数组进行排序 -> 我想在 *from_email 上使用 strcmp 对其进行排序 - 但如果两个 *from_email 被比较是相等的,那么我想使用 *to_email 进行排序。
感谢所有的帮助!