Beispiel #1
0
	void bst<type>::_postorder(np cur, void(*visit)(type data)) {
		if (cur != NULL) {
			_postorder(cur->left, visit);
			_postorder(cur->right, visit);
			(*visit)(cur->_data);
		}
	}
Beispiel #2
0
static void _postorder(std::stringstream& ss, Node* node)
{
    if (node == nullptr)
        return;

    _postorder(ss, node->left);
    _postorder(ss, node->right);
    ss << node->data << "|";
}
void BinaryTree::_postorder(void visit(Website &), BinaryNode* nodePtr) const
{
    //left-right-root
    if (nodePtr == 0)
    {
        return;
    }
    _postorder(visit, nodePtr->getLeftPtr());
    _postorder(visit, nodePtr->getRightPtr());
    Website web = nodePtr->getWebsite();
    visit(web);
}
Beispiel #4
0
std::string bt<T>::DFTraverse_postorder() const
{
    std::stringstream ss;
    _postorder(ss, _tree);
    return std::move(ss.str());
}
Beispiel #5
0
		void postorder(void(*visit)(type)) { _postorder(_root, visit); };
Beispiel #6
0
void
aguri_aggregate(aguri_t *tp, u_int64_t thresh) {
	_postorder(tp->tr_top, _agg, (void *)&thresh);
}