Пример #1
0
  /**
   * Diese Methode sucht mit der Breitensuche einen Knoten im Baum. Es wird null zurückgegeben, wenn
   * der Knoten nicht gefunden wurde.
   *
   * @param item der zu suchende Knoten
   * @return den Knoten wenn er gefunden wurde, sonst null
   */
  public ADicomTreeItem lookUpDicomTreeItem(ADicomTreeItem item) {
    Queue<ADicomTreeItem> queue = new LinkedList<>();
    ArrayList<ADicomTreeItem> visited = new ArrayList<>();

    queue.offer(root);
    visited.add(root);

    while (queue.size() > 0) {
      ADicomTreeItem actual = queue.poll();
      if (actual.getUid().equals(item.getUid())) {
        return actual;
      }
      for (ADicomTreeItem child : actual.getChildren()) {
        if (!visited.contains(child)) {
          queue.offer(child);
          visited.add(child);
        }
      }
    }
    return null;
  }
Пример #2
0
  /** Testmethode, ob alle Teile des Baumes durchlaufen werden. */
  public void walkDicomTreeRepository() {
    Queue<ADicomTreeItem> queue = new LinkedList<>();
    ArrayList<ADicomTreeItem> visited = new ArrayList<>();

    queue.offer(root);
    visited.add(root);

    while (queue.size() > 0) {
      ADicomTreeItem actual = queue.poll();
      // System.out.println(actual.getUid());
      for (ADicomTreeItem child : actual.getChildren()) {
        if (!visited.contains(child)) {
          queue.offer(child);
          visited.add(child);
          System.out.println("Visited " + child.getUid());
        }
      }
    }
  }