Please convert the code in C language #include using namespace std; // tree node is defined class tree{ public: int data; tree *left; tree *right; }; void printSibling(tree* root) { //Declare queue...


Please convert the code in
C language



#include
using namespace std;


// tree node is defined
class tree{
    public:
        int data;
        tree *left;
        tree *right;
};


void printSibling(tree* root)
{
    //Declare queue using STL
    queue q;
    //enqueue the root
    q.push(root);
    vector store;


    tree* temp;
    //do the level order traversal & check for siblings
    while(!q.empty()){
        //dequeue
        temp=q.front();
        q.pop();
        //if the current node has only one child
        //definitely the child has no sibling
        //store the child node value
        if(temp->left==NULL && temp->right!=NULL){
            store.push_back(temp->right->data);
        }


        if(temp->left!=NULL && temp->right==NULL){
            store.push_back(temp->left->data);
        }
        // do level order traversing
        if(temp->right)
            q.push(temp->right);
        if(temp->left)
            q.push(temp->left);
    }
    //if no node found without having sibling
    //vector size is zero
    //print -1
    if(store.size()==0){
        printf("-1, no such  node\n");
    return;
    }
    //sort the vector to print sorted node value
    sort(store.begin(),store.end());
    //printing
    for(auto it=store.begin();it!=store.end();it++)
        printf("%d ",*it);
}


tree* newnode(int data)  // creating new node
{
    tree* node = (tree*)malloc(sizeof(tree));
    node->data = data;
    node->left = NULL;
    node->right = NULL;


    return(node);
}




int main()
{
    //**same tree is builted as shown in example**
    cout<"same tree="" is="" built="" as="" shown="" in="">
    tree *root=newnode(2);
    root->left= newnode(7);
    root->right= newnode(5);
    root->right->right=newnode(9);
    root->right->right->left=newnode(4);
    root->left->left=newnode(2);
    root->left->right=newnode(6);
    root->left->right->left=newnode(5);
    root->left->right->right=newnode(11);


    cout<"printing the="" nodes="" that="" don't="" have=""><>
    printSibling(root);


    return 0;
}




Output:



same tree is built as shown in example<br>printing the nodes that don't have sibling...<br>4 9<br>

Extracted text: same tree is built as shown in example printing the nodes that don't have sibling... 4 9

Jun 05, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here