Hallo Zusammen,
Beschäftige mich derzeit mit Graphen spezieller mit Bäumen:
Problem ist Folgendes: gegeben ist ein Baum bzw ein Wurzelknoten und ich soll nun alle vorhandenen Knoten finden bzw zählen in meiner countNodes Methode:
Mein Gedanke ich packe jeden Knoten auf den Stack und zähle dabei einfach mit.
Der Stack ist mir allerings auch noch neu und bin mir nicht sicher ob ich das so richtig handhabe.. Vorallem das ich beim Stack so einen Integerwert benötige.
VG Lazy
Beschäftige mich derzeit mit Graphen spezieller mit Bäumen:
Problem ist Folgendes: gegeben ist ein Baum bzw ein Wurzelknoten und ich soll nun alle vorhandenen Knoten finden bzw zählen in meiner countNodes Methode:
Mein Gedanke ich packe jeden Knoten auf den Stack und zähle dabei einfach mit.
Der Stack ist mir allerings auch noch neu und bin mir nicht sicher ob ich das so richtig handhabe.. Vorallem das ich beim Stack so einen Integerwert benötige.
Code:
package de.ur.iw.adp.tree;
import java.util.Stack;
public class TreeNode {
private final int content;
private TreeNode left;
private TreeNode right;
public TreeNode(int content) {
this.content = content;
}
public int content() {
return content;
}
public TreeNode left() {
return left;
}
public void setLeft(TreeNode node) {
left = node;
}
public TreeNode right() {
return right;
}
public void setRight(TreeNode node) {
right = node;
}
public static int countNodes(TreeNode root) {
int counter = 1;
if(root == null){
return 0;
}
Stack<Integer> stapel = new Stack<>();
if(root != null){
stapel.push(root.content());
}
while(stapel.empty() == false){
TreeNode Node = new TreeNode(stapel.pop());
if(Node.right()!= null){
stapel.push(Node.right().content());
counter++;
}
if(Node.left()!= null){
stapel.push(Node.left().content());
counter++;
}
}
return counter;
}
VG Lazy