int FindNum(node *head, int num)
{
}
Note: Review Needed...??
Using BFS is Absolutely Efficient Way to Solve it..kep in Mind Recursion(DFS) is not good because it needs memory stack.
#include
#include
#define MAX_Q_SIZE 500
/* A binary tree node has data, pointer to left child
and a pointer to right child */
struct node
{
int data;
struct node *child[];
};
/* frunction prototypes */
struct node** createQueue(int *, int *);
void enQueue(struct node **, int *, struct node *);
struct node *deQueue(struct node **, int *);
/* Given a binary tree, print its nodes in level order
using array for implementing queue */
void printLevelOrder(struct node* root,int val)
{
int rear, front;
struct node **queue = createQueue(&front, &rear);
struct node *temp_node = root;
int i=0;
while(temp_node)
{
if(temp_node->data==val)
printf("item found");
else
printf(" Item DNE");
i=0;
/*Enqueue left child */
if(temp_node->child[i])
{
while(temp_node->child[i)
{
enQueue(queue, &rear, temp_node->left);
i++;
}
/*Dequeue node and make it temp_node*/
temp_node = deQueue(queue, &front);
}
}
/*UTILITY FUNCTIONS*/
struct node** createQueue(int *front, int *rear)
{
struct node **queue =
(struct node **)malloc(sizeof(struct node*)*MAX_Q_SIZE);
*front = *rear = 0;
return queue;
}
void enQueue(struct node **queue, int *rear, struct node *new_node)
{
queue[*rear] = new_node;
(*rear)++;
}
struct node *deQueue(struct node **queue, int *front)
{
(*front)++;
return queue[*front - 1];
}
/* Helper function that allocates a new node with the
given data and NULL left and right pointers. */
struct node* newNode(int data)
{
struct node* node = (struct node*)
malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
return(node);
}
/* Driver program to test above functions*/
int main()
{
struct node *root = newNode(11);
int i=0,j=0;int k=1;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
root->child[i]= newNode(k);
k++;
}
k++;
root=root->child[i];
}
printf("Level Order traversal of binary tree is \n");
printLevelOrder(root);
getchar();
return 0;
}
TC O(nlogn)
SC O(1)
Run Here
No comments :
Post a Comment