için ağaç düğümlerini temini için bir C++ ön sipariş yineleyici oluşturun:Bir C bu döngüye ağaç düğümlerini tedarik ++ programı yazmaya çalışıyorum bir döngü
bin_tree<int> *my_tree = ...
for (bin_tree<int>::iterator n = my_tree->begin();
n != my_tree->end(); ++n)
{
cout << *n << "\n";
}
Java ile yazılmış olan sınıf ve isterim C++ 'ya çevirmeyi sever, ancak bunu yaparken sorun yaşıyorum. Bu sınıftır:
class BinTree<T> implements Iterable<T> {
BinTree<T> left;
BinTree<T> right;
T val;
// other methods: insert, delete, lookup, ...
public Iterator<T> iterator()
{
return new TreeIterator(this);
}
private class TreeIterator implements Iterator<T>
{
private Stack<BinTree<T>> s = new Stack<BinTree<T>>();
TreeIterator(BinTree<T> n)
{
if (n.val != null) s.push(n);
}
public boolean hasNext()
{
return !s.empty();
}
public T next()
{
if (!hasNext()) throw new NoSuchElementException();
BinTree<T> n = s.pop();
if (n.right != null) s.push(n.right);
if (n.left != null) s.push(n.left);
return n.val;
}
public void remove()
{
throw new UnsupportedOperationException();
}
}
}
C++ doğru bu programı yazma konusunda herhangi bir yardım mutluluk duyacağız, düzgün ön sipariş yineleyici nasıl uygulanacağı emin değilim. Eğer aşağıdaki öneririm yineleyicinızı destekleyen bir kapsayıcı oluşturmak çalışıyorsanız