convert this C++ codes into C language

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 this C++ codes into C language 

 

#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 2 steps with 3 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