void bst<type>::_inorder(np cur, void(*visit)(type data)) { if (cur != NULL) { _inorder(cur->left, visit); (*visit)(cur->_data); _inorder(cur->right, visit); } }
void treap::_inorder(node *pos) { if (pos == nullptr) { return; } _inorder(pos->left); std::cout << pos->val << " "; _inorder(pos->right); }
void _inorder(tree *root) { if (root == NULL) return; _inorder(root->left); printf("%d ", root->data); _inorder(root->right); }
static void _inorder(std::stringstream& ss, Node* node) { if (node == nullptr) return; _inorder(ss, node->left); ss << node->data << "|"; _inorder(ss, node->right); }
void BinaryTree::_inorder(void visit(Website &), BinaryNode* nodePtr) const { // left-root-right if (nodePtr == 0) { return; } _inorder(visit, nodePtr->getLeftPtr()); Website web = nodePtr->getWebsite(); visit(web); _inorder(visit, nodePtr->getRightPtr()); }
void BinaryTree::_inorder(void visit(Website &), BinaryNode* nodePtr, const Website & minItem, const Website & maxItem) const { // Node is null if (nodePtr == 0) { return; } // Node is outside of desired range Website currentItem = nodePtr->getWebsite(); if (currentItem < minItem || currentItem > maxItem) { return; } _inorder(visit, nodePtr->getLeftPtr(), minItem, maxItem); visit(currentItem); _inorder(visit, nodePtr->getRightPtr(), minItem, maxItem); }
void treap::inorder() { _inorder(root); }
void print_inorder(tree *root) { _inorder(root); printf("\n"); }
std::string bt<T>::DFTraverse_inorder() const { std::stringstream ss; _inorder(ss, _tree); return std::move(ss.str()); }
void inorder(struct YelpDataBST* bst) { _inorder( bst->root ); }
// inorder of bst void _inorder(struct BSTnode* root) { if( root ==NULL ) return ; _inorder( root->left ); printf( "business = %s\n" , root->business->name ); _inorder( root->right ); }
void BinaryTree::inOrder(void visit(Website &), const Website & minItem, const Website & maxItem) const { _inorder(visit, rootPtr, minItem, maxItem); }
void sortedPrint(Node<int> *root1,Node<int> *root2) { if(root1 == 0) { _inorder(root1); return; } if(root2 == 0) { _inorder(root2); return; } stack<Node<int> *> s1,s2; Node<int> *curr1,*curr2; curr1 = root1; curr2 = root2; Node<int> *one,*two; while(curr1 || curr2 || !s1.empty() || !s2.empty()) { while(curr1) { s1.push(curr1); curr1 = curr1->mLeft; } while(curr2) { s2.push(curr2); curr2 = curr2->mLeft; } if(!s1.empty() && !s2.empty()) { one = s1.top(); two = s2.top(); if(one->mData > two->mData) { cout << two->mData << ","; s2.pop(); curr2 = two->mRight; } else { cout << one->mData << ","; s1.pop(); curr1 = one->mRight; } } else if(!s1.empty() && s2.empty()) { one = s1.top(); cout << one->mData << ","; s1.pop(); curr1 = one->mRight; } else if(!s2.empty() && s1.empty()) { two = s2.top(); cout << two->mData << ","; s2.pop(); curr2 = two->mRight; } } }
void inorder(void(*visit)(type)) { _inorder(_root, visit); };