我正在做一个项目,我从 10-15 个不同的 IP 地址跟踪到某个 IP 地址。大多数跟踪路由在到达同一目的地的途中(跳跃)沿着某些常见的路由器。结果数据给了我一个图表。我认为表示这些数据的最佳方式是邻接表。是否有任何 C 库可以在其中获取此类图的实例并在进行不同的 traceroute 调用时向其添加边(跃点)?
user494461
问问题
7403 次
2 回答
2
#include <stdio.h>
#include <stdlib.h>
// adjacency list implementation of graph using linked list in c
struct adj_node {
int index;
struct adj_node * next;
};
void makeadj(struct adj_node *nod,int adj) {
struct adj_node *newadj=(struct adj_node *)malloc(sizeof(struct adj_node));
newadj->index=adj;
newadj->next=NULL;
while(nod->next!=NULL)nod=nod->next;
nod->next=newadj;
}
int main(){
int i;
struct adj_node graph[4],*temp;
for(i=0;i<4;i++){
graph[i].index=i;graph[i].next=NULL;
}
//example
makeadj(&graph[0],2);
makeadj(&graph[0],3);
makeadj(&graph[1],2);
makeadj(&graph[2],0);
makeadj(&graph[2],1);
makeadj(&graph[2],3);
temp=&graph[2];
while(temp->next!=NULL){
printf("%d",temp->next->index);
temp=temp->next;
}
return 0;
}
于 2012-03-05T21:56:04.953 回答