2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
ratkaisu
Algoritmi ideoita
Määrittääksemme, mikä taso puurakenteen lista on, voimme kulkea kunkin solmun läpi rekursiivisesti ja laskea sen syvyyden. Tarkemmin sanottuna kunkin solmun osalta voimme kulkea sen pääsolmun läpi ylöspäin juurisolmuun saakka, samalla kun keräämme syvyysarvoa. Lopullinen syvyysarvo on taso, jolla solmu sijaitsee.
koodiesimerkki
Seuraava on yksinkertainen Java-koodiesimerkki puurakenteen solmun tason määrittämiseksi:
public class TreeNode {
private int id;
private int parentId;
public TreeNode(int id, int parentId) {
this.id = id;
this.parentId = parentId;
}
public int getId() {
return id;
}
public int getParentId() {
return parentId;
}
}
public class TreeUtils {
public static int getLevel(TreeNode node, List<TreeNode> nodeList) {
int level = 1;
int parentId = node.getParentId();
while (parentId != 0) {
for (TreeNode n : nodeList) {
if (n.getId() == parentId) {
parentId = n.getParentId();
level++;
break;
}
}
}
return level;
}
}
public class Main {
public static void main(String[] args) {
List<TreeNode> nodeList = new ArrayList<>();
nodeList.add(new TreeNode(1, 0));
nodeList.add(new TreeNode(2, 1));
nodeList.add(new TreeNode(3, 1));
nodeList.add(new TreeNode(4, 2));
TreeNode node = nodeList.get(3);
int level = TreeUtils.getLevel(node, nodeList);
System.out.println("Node " + node.getId() + " is at level " + level);
}
}