Informatică, întrebare adresată de singei, 8 ani în urmă

Să se creeze un arbore al căror noduri conține numere întregi. Să se afișeze conținutul arborelui la ecran și să se calculeze cîte elemente pare și cîte elemente impare avem în arbore.


Programul să fie scris în limbajul C. Dau Coroana!!!

Răspunsuri la întrebare

Răspuns de AlbertCucuteanu
0

#include <stdio.h>

#include <stdlib.h>

struct node

{

   int data;

   struct node* left;

   struct node* right;

};

struct node* newNode(int data)

{

   struct node* node = (struct node*)

                       malloc(sizeof(struct node));

   node->data = data;

   node->left = NULL;

   node->right = NULL;

 

   return(node);

}

void inorder(struct node* root)

{

   if (root != NULL)

   {

       inorder(root->left);

       printf("%d ", root->data);

       inorder(root->right);

   }

}

int main()

{

   int pari = 0;

   int impari = 0;

   struct node *root = newNode(2);

   root->left        = newNode(7);

   root->right       = newNode(5);

   root->left->right = newNode(6);

   root->left->right->left=newNode(1);

   root->left->right->right=newNode(11);

   root->right->right=newNode(9);

   root->right->right->left=newNode(4);

 

   printf("Traversarea în ordine \n");

   inorder(root);

 

   // Calculam cate elemente pare si impare avem in arbore

   if (root->data % 2 == 0)

       pari++;

   else

       impari++;

   if (root->left->data % 2 == 0)

       pari++;

   else

       impari++;

   if (root->right->data % 2 == 0)

       pari++;

   else

       impari++;

   if (root->left->right->data % 2 == 0)

       pari++;

   else

       impari++;

   if (root->left->right->left->data % 2 == 0)

       pari++;

   else

       impari++;

   if (root->left->right->right->data % 2 == 0)

       pari++;

   else

       impari++;

   if (root->right->right->data % 2 == 0)

       pari++;

   else

       impari++;

   if (root->right->right->left->data % 2 == 0)

       pari++;

   else

       impari++;

 

   printf("\n Numarul de elemente pare din arbore este: %d", pari);

   printf("\n Numarul de elemente impare din arbore este: %d", impari);

 

   getchar();

   return 0;

}

Anexe:

singei: ar fi de dorit ca programul să fie în C și ca să poți introduce informația de la tastatură dar să nu fie inclusă în program
AlbertCucuteanu: Stai scuze, am trimis altceva fata de ce voiam sa trimis. Am refacut problema in C, iar screenshotul este cel pe care voiam sa-l trimit initial, dar nu este acelasi output, este cu putin diferit.
VxF: Această rezolvare este pentru arbore binar. Enunţul nu a restricţionat arborele la binar.
Alte întrebări interesante