Question

J'écris un programme en C ++ nécessitant des adresses IP (tous IPv4) à regarder et stockées de manière rapide. Chaque adresse IP a une donnée associée à celle-ci. Si cela existe déjà dans la Trie, j'ai l'intention de fusionner les données de l'adresse IP dans la trie avec les nouvelles adresses. Si ce n'est pas présent, j'ai l'intention de l'ajouter comme une nouvelle entrée à la Trie. La suppression de l'adresse IP n'est pas nécessaire.

Pour mettre en œuvre cela, j'ai besoin de concevoir une trie Patricia. Cependant, je suis incapable de visualiser la conception au-delà de cela. Cela me semble assez naïf, mais la seule idée qui me suis venu à l'esprit était de changer l'adresse IP à leur forme binaire, puis d'utiliser la trie. Je suis toutefois désemparé sur comment exactement pour la mettre en œuvre.

Je serais vraiment reconnaissant avec vous si vous pouviez m'aider avec celui-ci. Veuillez noter que j'ai trouvé une question similaire ici . La question ou plus particulièrement la réponse était au-delà de ma compréhension car le code dans le site Web de CPAN n'était pas assez clair pour moi.

Notez également, mes données sont le format suivant

10.10.100.1: "Tom", "Jack", "Smith"

192.168.12.12: "Jones", "Liz"

12.124.2.1: "Jimmy", "George"

10.10.100.1: "Mike", "Harry", "Jennifer"

Était-ce utile?

La solution

Patricia Triet résoudre le problème de la recherche du meilleur préfixe de couverture pour une adresse IP donnée (ils sont utilisés par des routeurs pour déterminer rapidement que 192.168.0.0/16 est le meilleur choix pour 192.168.14.63, par exemple).Si vous essayez simplement de faire correspondre exactement les adresses IP, une table de hachage est un meilleur choix.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top