Hi, I need help with this study guide question from my computer science class(programming in C)

3. We can use a binary search tree to keep track the word frequencies in a text. The conventionis that the left branch holds lexicographically smaller words, and the right larger. Your taskis to implement addWord (). If the word exists in the tree, you should increment its count. Ifit is a new word, you should allocate a new tree node, allocate enough memory to store theword, make a copy of it, set its count to 1, and insert the new node in the proper place.Additionally, draw the tree after the words from Gettysburg are added.char *Gettysburg = { “government”, “of”, “the”, “people”,”by”, “the”, “people”, “for”, “the”, “people”,”shall”, “not”, “perish”, “from”, “the”, “earth” };typedef struct tree {char *word;int count;struct tree *left, *right;} Tree;Tree *addWord (Tree *ptr, const char word ) {Tree root = NULL;for (int i = 0; i < 16; i++)root = addWord(root, Gettysburg[i] );