Convert in C language code   #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 example\n";     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 sibling...\n"<

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Convert in C language code

 

#include <bits/stdc++.h>
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<tree*> q;
    //enqueue the root
    q.push(root);
    vector<int> 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 example\n";
    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 sibling...\n"<<endl; 
    printSibling(root);

    return 0; 
}

Expert Solution
steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY