Esempio n. 1
0
	void bst<type>::_preorder(np cur, void(*visit)(type data)) {
		if (cur != NULL) {
			(*visit)(cur->_data);
			_preorder(cur->left, visit);
			_preorder(cur->right, visit);
		}
	}
Esempio n. 2
0
File: tree.hpp Progetto: mboghiu/try
static void _preorder(std::stringstream& ss, Node* node)
{
    if (node == nullptr)
        return;

    ss << node->data << "|";
    _preorder(ss, node->left);
    _preorder(ss, node->right);
}
void BinaryTree::_preorder(void visit(Website &), BinaryNode* nodePtr) const
{
    // root-left-right
    if (nodePtr != 0)
    {
        Website web = nodePtr->getWebsite();
        visit(web);
        _preorder(visit, nodePtr->getLeftPtr());
        _preorder(visit, nodePtr->getRightPtr());
    }
}
Esempio n. 4
0
File: tree.hpp Progetto: mboghiu/try
std::string bt<T>::DFTraverse_preorder() const
{
    std::stringstream ss;
    _preorder(ss, _tree);
    return std::move(ss.str());
}
Esempio n. 5
0
		void preorder(void(*visit)(type)) { _preorder(_root, visit); };
Esempio n. 6
0
static u_int64_t _subsum(anode_t *np) {
	u_int64_t cnt = 0;
	_preorder(np, _nsum, &cnt);
	return (cnt);
}
Esempio n. 7
0
void
aguri_print(aguri_t *tp) {
	_preorder(tp->tr_top, _nprint, 0);
}
Esempio n. 8
0
void
aguri_reset(aguri_t *tp) {
	_preorder(tp->tr_top, _nresetcount, 0);
	tp->tr_count = 0;
}
Esempio n. 9
0
/*
 * preorder tree walk
 */
int aguri_walk(aguri_t *tp, aguri_walker func, void *arg) {
	pair_t p = pair(func, arg);
	return _preorder(tp->tr_top, _adapter, &p);
}