please convert the code to C language Source Code: // CPP program for above approach #include using namespace std; // A Binary Tree Node struct node { struct node *left, *right; int data; }; //...


please convert the code to
C language




Source Code:


// CPP program for above approach
#include
using namespace std;


// A Binary Tree Node
struct node
{
    struct node *left, *right;
    int data;
};


// Utility function to
// create a new tree node
node* newNode(int key)
{
node *temp = new node;
temp->data= key;
temp->left = temp->right = NULL;
return temp;
}


// Function to print all
// non-root nodes that
// don't have a sibling
void printSingles(struct node *root)
{


// Base case
if (root == NULL)
return;


queue q1;
q1.push(root);


int flag=0;
vector v;


// While q1 is not empty
while(q1.empty() == false)
{
    struct node * temp=q1.front();
    q1.pop();


    // Check if temp->left is not
    // NULL and temp->right is NULL
    if(temp->left != NULL &&
                    temp->right == NULL)
    {
        flag=1;
        v.push_back(temp->left->data);
    }


    // Check if temp->left is equal
    // NULL and temp->right is not NULL
    if(temp->left == NULL &&
                        temp->right != NULL)
    {
        flag=1;
        v.push_back(temp->right->data);
    }


    // Check if temp->left is not
    // NULL
    if(temp->left != NULL)
    {
        q1.push(temp->left);
    }

    // Check if temp->right is not
    // NULL
    if(temp->right != NULL)
    {
        q1.push(temp->right);
    }
}


// Sort v in increasing order
sort(v.begin(), v.end());


// Iterate i from 0 to v.size() - 1
for (int i = 0; i < v.size();="">
{
    cout< v[i]="">< "="">
}


// Check is v is empty
if (v.size() == 0)
{
    cout<>
}
}


// Driver program to test
// above functions
int main()
{


// Let us create binary tree
// given in the above example
    cout<"same tree="" is="" built="" as="" shown="" in="">
    node *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=""><>
// Function Call
printSingles(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