Inorder traversal of binary tree - Recursive
Inorder traversal of binary tree - Iterative
typedef struct _binaryTreeNode
{
struct _binaryTreeNode *left;
struct _binaryTreeNode *right;
void* object;
} TreeNode;
void inOrderTraversalRecursive(TreeNode* root) {
if (root == NULL )
return;
inOrderTraversalRecursive(root->left);
printf("%d ", *(int *) root->object);
inOrderTraversalRecursive(root->right);
}
Inorder traversal of binary tree - Iterative
void inOrderTraversalIterative(TreeNode* root) {
if (root == NULL )
return;
Stack *tempStack = createStack();
do {
while (root != NULL ) {
push(tempStack, root);
root = root->left;
}
if (isEmpty(tempStack) != 0) {
root = pop(tempStack);
printf("%d ", *((int*) root->object));
root = root->right;
}
} while ((isEmpty(tempStack) != 0) || root != NULL );
}
PS: Stack related functions are here.
No comments:
Post a Comment