class ETNode {
public:
- ETNode(void *d) : data(d), Father(NULL), Left(NULL),
+ ETNode(void *d) : data(d), DFSNumIn(-1), DFSNumOut(-1),
+ Father(NULL), Left(NULL),
Right(NULL), Son(NULL), ParentOcc(NULL) {
RightmostOcc = new ETOccurrence(this);
};
return this->Below(other);
}
- void assignDFSNumber(int &num) {
- DFSNumIn = num++;
-
- if (Son) {
- Son->assignDFSNumber(num);
- for (ETNode *son = Son->Right; son != Son; son = son->Right)
- son->assignDFSNumber(num);
- }
- DFSNumOut = num++;
- }
+ void assignDFSNumber (int);
bool hasFather() const {
return Father != NULL;
void *data;
// DFS Numbers
- unsigned DFSNumIn, DFSNumOut;
+ int DFSNumIn, DFSNumOut;
// Father
ETNode *Father;