1

私は、10〜15個の異なるIPアドレスから特定のIPアドレスへのtracerouteを作成するプロジェクトに取り組んでいます。ほとんどのtracerouteは、同じ宛先への途中(ホップ)にある特定の一般的なルーターに沿って進みます。結果のデータは私にグラフを与えます。このデータを表す最良の方法は隣接リストだと思います。このようなグラフのインスタンスを取得して、さまざまなtraceroute呼び出しを行うときにエッジ(ホップ)を追加できるCライブラリはありますか?

4

2 に答える 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 に答える
0

10〜15個のIPアドレスしか必要ない場合は、マトリックスを使用する必要があります。それ以外の場合は、各頂点をリンクリストにマップするハッシュテーブルを試してください。利用可能な無料のハッシュテーブル実装たくさんあります

于 2011-03-16T13:32:18.130 に答える