Advertisement
Guest User

lab3

a guest
Apr 27th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.50 KB | None | 0 0
  1. // lab3.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5.  
  6. struct leaf {
  7.     int data;
  8.     leaf* nextL = NULL;
  9.     leaf* nextR = NULL;
  10. };
  11.  
  12. struct tree {
  13.     leaf* head;
  14. };
  15.  
  16. bool comp(leaf *leaf1, leaf *leaf2) {
  17.     bool b1, b2;
  18.     if (leaf1->data != leaf2->data) {
  19.         return false;
  20.     }
  21.     if ((leaf1->nextL != NULL)&&(leaf1->nextR != NULL))
  22.     {
  23.         if (leaf1->nextL != NULL) {
  24.             b1 = comp(leaf1->nextL, leaf2->nextL);
  25.             if (!b1) {
  26.                 return false;
  27.             }
  28.         }
  29.         if (leaf1->nextR != NULL) {
  30.             b2 = comp(leaf1->nextR, leaf2->nextR);
  31.             if (!b2) {
  32.                 return false;
  33.             }
  34.         }
  35.     }
  36.     else {
  37.         return true;
  38.     }
  39. }
  40.  
  41. int main()
  42. {
  43.     tree *T1, *T2;
  44.     leaf *currLeaf1, *currLeaf2;
  45.     int n, n2;
  46.  
  47.     T1->head = new(leaf);
  48.     T2->head = new(leaf);
  49.     {
  50.     T1->head->data = 13;
  51.     T1->head->nextL = new(leaf);
  52.     T1->head->nextL->data = 14;
  53.     T1->head->nextR = new(leaf);
  54.     T1->head->nextR->data = 15;
  55.     T1->head->nextL->nextL = new(leaf);
  56.     T1->head->nextL->nextL->data = 16;
  57.     T1->head->nextL->nextR = new(leaf);
  58.     T1->head->nextL->nextR->data = 17;
  59.     T1->head->nextR->nextL = new(leaf);
  60.     T1->head->nextR->nextL->data = 18;
  61.     T1->head->nextR->nextR = new(leaf);
  62.     T1->head->nextR->nextR->data = 19;
  63.     }
  64.     //создание первого дерева
  65.     {
  66.     T1->head->data = 13;
  67.     T1->head->nextL = new(leaf);
  68.     T1->head->nextL->data = 14;
  69.     T1->head->nextR = new(leaf);
  70.     T1->head->nextR->data = 15;
  71.     T1->head->nextL->nextL = new(leaf);
  72.     T1->head->nextL->nextL->data = 16;
  73.     T1->head->nextL->nextR = new(leaf);
  74.     T1->head->nextL->nextR->data = 17;
  75.     T1->head->nextR->nextL = new(leaf);
  76.     T1->head->nextR->nextL->data = 18;
  77.     T1->head->nextR->nextR = new(leaf);
  78.     T1->head->nextR->nextR->data = 19;
  79.     }
  80.     //сoздание второго дерева
  81.  
  82.     if (comp(T1->head, T2->head)) {
  83.         printf_s("ya");
  84.     }
  85.     else {
  86.         printf_s("no");
  87.     }
  88.  
  89.     /*printf_s("enter head of T1 and T2");
  90.     scanf_s("%d%d", T1->head->data, T2->head->data);
  91.     printf("enter number of ellements T1 and T2");
  92.     scanf_s("%d%d", &n, &n2);
  93.     if (n != n2) {
  94.         printf_s("No");
  95.         return 0;
  96.     }
  97.  
  98.     currLeaf1 = T1->head;
  99.     currLeaf2 = T2->head;
  100.  
  101.     for (int i = 0; i < n; i++) {
  102.         scanf_s("%d", &n2);
  103.         if (n2 > currLeaf1->data) {
  104.  
  105.             currLeaf1->nextR = new(leaf);
  106.             currLeaf1->nextR->data = n2;
  107.             currLeaf1 = currLeaf1->nextR;
  108.         }
  109.         else {
  110.             currLeaf1->nextL = new(leaf);
  111.             currLeaf1->nextL->data = n2;
  112.             currLeaf1 = currLeaf1->nextL;
  113.         }
  114.     }
  115. */
  116.  
  117.     getchar();
  118.     getchar();
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement