void inorderHelper(TreeNode *root, vector<int> &inorder)
	{
	    if(!root)
		return;
	    inorderHelper(root->left, inorder);
	    inorder.push_back(root->val);
	    inorderHelper(root->right, inorder);
	}
// ------------------------------------inorderHelper----------------------------------------------- 
// Description: recursively fills the array with the contents of the tree inorder
// -------------------------------------------------------------------------------------------------------------
void BinTree::inorderHelper(NodeData*arr[], int &index, Node *node) const
{
    if(node->left != NULL)
        inorderHelper(arr, index, node->left);

    arr[index++] = node->data;

    if(node->right != NULL)
        inorderHelper(arr, index, node->right);
}
Esempio n. 3
0
void BST::inorderHelper(Node *node){
	if(node == NULL){
		return;
	}
	else{
		inorderHelper(node -> left);
		cout<<node->data<<"->";
		globalInorder[globalLenInorder++]=node->data; //For finding lowest common ancestor
		inorderHelper(node -> right);
	}
}
// ------------------------------------bstreeToArray----------------------------------------------- 
// Description:makes sure tree is not empty and then calls inOrderHelper to recursively
//      fill the array.  Empty's out the tree leaving it with a NULL root
// -------------------------------------------------------------------------------------------------------------
void BinTree::bstreeToArray(NodeData* arr[])
{
    int i = 0;

    if(this->root != NULL)
        inorderHelper(arr, i, this->root);

    makeEmpty(this->root);
}
Esempio n. 5
0
//Inorder Traversal of BST
void BST::inorder(){
	if(root == NULL){
		cout<<"BST empty";
	}
	else{
		cout<<endl<<"Inorder Traversal"<<endl;
		inorderHelper(root);
	}
}
    vector<int> inorderTraversal(TreeNode *root) {
	vector<int> inorder;
	inorderHelper(root, inorder);
	return inorder;
    }