On 14/06/2018 11:31 PM, Robert M. Münch wrote:
I have a simple tree C data-structure that looks like this:
node {
struct Node {
node parent:
Node* parent;
vector[node] children;
Node[] children;
}
I would like to create two foreach algorthims, one follwing the breadth
first search pattern and one the depth first search pattern.
Here is (very roughly breadth):
auto search(Method method) {
struct Voldermort {
Node parent;
size_t offset;
@property {
Node front() {
return parent.children[offset];
}
bool empty() {
return offset == parent.children.length;
}
}
void popFront() {
offset++;
}
}
return Voldermort(this);
}
Depth will be a bit of a pain since you'll need to know where you have
been at each set of children.