flowchart TD
ip1("140.1.10.20")
ip2("87.1.10.3")
ip3("140.1.11.1")
ip4("93.18.1.40")
ip5("103.11.0.2")
ip6("90.15.100.225")
ip7("87.1.5.14")
ip4---ip2
ip2---ip7
ip2---ip6
ip4---ip1
ip1---ip5
ip1---ip3
public BinTree suchePosition(BinTree b, String ip){
if (!b.isEmpty()){
if (IPGreater(b.getItem(), ip){
if (b.hasLeft())
return suchePosition(b.getLeft(), ip);
return b;
}
else {
if (b.hasRight())
return suchePosition(b.getRight(), ip);
return b;
}
}
return b;
}
private bool IPGreater(String a, String b){
return IPStringToLong(a) > IPStringToLong(b);
}
private long IPStringToLong(String ip){
int[] ip = new int[4];
String[] parts = ip.split("\\.");
for (int i = 0; i < 4; i++)
ip[i] = Integer.parseInt(parts[i]);
long ipNumbers = 0;
for (int i = 0; i < 4; i++)
ipNumbers += ip[i] << (24 - (8 * i));
return ipNumbers;
}
public BinTree einfuegen(BinTree tree, String ip){
if (b.isEmpty())
return tree.setItem(ip);
else {
BinTree insertTree = suchePosition(tree, ip);
BinTree itemTree = new BinTree();
itemTree.setItem(ip);
if (IPGreater(insertTree.getItem(), ip))
insertTree.setLeft(itemTree);
else
insertTree.setRight(itemTree);
}
return tree;
}
flowchart TD
ip1("140.1.10.20")
ip2("87.1.10.3")
ip3("140.1.11.1")
ip4("93.18.1.40")
ip5("103.11.0.2")
ip6("90.15.100.225")
ip7("87.1.5.14")
ip8("87.148.226.16")
ip4---ip2
ip2---ip7
ip2---ip6
ip4---ip1
ip1---ip5
ip1---ip3
flowchart TD
ip111("111.12.4.1")
ip070