Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // lab3.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- struct leaf {
- int data;
- leaf* nextL = NULL;
- leaf* nextR = NULL;
- };
- struct tree {
- leaf* head;
- };
- bool comp(leaf *leaf1, leaf *leaf2) {
- bool b1, b2;
- if (leaf1->data != leaf2->data) {
- return false;
- }
- if ((leaf1->nextL != NULL)&&(leaf1->nextR != NULL))
- {
- if (leaf1->nextL != NULL) {
- b1 = comp(leaf1->nextL, leaf2->nextL);
- if (!b1) {
- return false;
- }
- }
- if (leaf1->nextR != NULL) {
- b2 = comp(leaf1->nextR, leaf2->nextR);
- if (!b2) {
- return false;
- }
- }
- }
- else {
- return true;
- }
- }
- int main()
- {
- tree *T1, *T2;
- leaf *currLeaf1, *currLeaf2;
- int n, n2;
- T1->head = new(leaf);
- T2->head = new(leaf);
- {
- T1->head->data = 13;
- T1->head->nextL = new(leaf);
- T1->head->nextL->data = 14;
- T1->head->nextR = new(leaf);
- T1->head->nextR->data = 15;
- T1->head->nextL->nextL = new(leaf);
- T1->head->nextL->nextL->data = 16;
- T1->head->nextL->nextR = new(leaf);
- T1->head->nextL->nextR->data = 17;
- T1->head->nextR->nextL = new(leaf);
- T1->head->nextR->nextL->data = 18;
- T1->head->nextR->nextR = new(leaf);
- T1->head->nextR->nextR->data = 19;
- }
- //создание первого дерева
- {
- T1->head->data = 13;
- T1->head->nextL = new(leaf);
- T1->head->nextL->data = 14;
- T1->head->nextR = new(leaf);
- T1->head->nextR->data = 15;
- T1->head->nextL->nextL = new(leaf);
- T1->head->nextL->nextL->data = 16;
- T1->head->nextL->nextR = new(leaf);
- T1->head->nextL->nextR->data = 17;
- T1->head->nextR->nextL = new(leaf);
- T1->head->nextR->nextL->data = 18;
- T1->head->nextR->nextR = new(leaf);
- T1->head->nextR->nextR->data = 19;
- }
- //сoздание второго дерева
- if (comp(T1->head, T2->head)) {
- printf_s("ya");
- }
- else {
- printf_s("no");
- }
- /*printf_s("enter head of T1 and T2");
- scanf_s("%d%d", T1->head->data, T2->head->data);
- printf("enter number of ellements T1 and T2");
- scanf_s("%d%d", &n, &n2);
- if (n != n2) {
- printf_s("No");
- return 0;
- }
- currLeaf1 = T1->head;
- currLeaf2 = T2->head;
- for (int i = 0; i < n; i++) {
- scanf_s("%d", &n2);
- if (n2 > currLeaf1->data) {
- currLeaf1->nextR = new(leaf);
- currLeaf1->nextR->data = n2;
- currLeaf1 = currLeaf1->nextR;
- }
- else {
- currLeaf1->nextL = new(leaf);
- currLeaf1->nextL->data = n2;
- currLeaf1 = currLeaf1->nextL;
- }
- }
- */
- getchar();
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement