Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- struct node {
- int number;
- struct node* right;
- struct node* left;
- };
- // rovnake stromy
- bool equal_trees(struct node* a, struct node* b){
- if (a==NULL && b==NULL) return true;
- if (a!=NULL && b!=NULL){
- if (equal_trees(a->left, b->left) && equal_trees(a->right, b->right)) return true;
- }
- return false;
- }
- // vytvorenie uzla
- struct node* create_node(int number){
- struct node* new_node = (struct node*) calloc(1, sizeof(struct node));
- new_node->number = number;
- new_node->right = NULL;
- new_node->left = NULL;
- return new_node;
- }
- //vytvorenie stromu
- struct node* create_tree(struct node* steam, int number){// steam je ako first !
- if (steam == NULL){
- return create_node(number);
- //printf("%dasdfa\n", steam->number);
- //return steam;
- }
- if (number < steam->number){
- //steam->right = create_node(number, NULL, NULL);
- steam->left = create_tree(steam->left, number);
- }
- else if (number >= steam->number){
- steam->right = create_tree(steam->right, number);
- }
- return steam;
- }
- int main(){
- int a, b, number;
- scanf("%d %d", &a, &b);
- struct node* trees[a];
- int y = 0, x = 0;
- trees[y] = NULL;
- while (y != a){
- scanf("%d", &number);
- trees[y] = create_tree(trees[y], number);
- //printf("dsafsadfs%dfirstcycle.\n", first->number);
- x++;
- if (x == b){
- x = 0;
- //trees[y] = NULL;
- y++;
- trees[y] = NULL;
- }
- }
- int sum = 0;
- int pomocne_pole[a];
- int index = 0;
- while (index != a){
- pomocne_pole[index] = 0;
- index++;
- }
- // zistenie kolko je typov stromov
- for (int i = 0; i < a; i++){
- if (pomocne_pole[i] == -1){
- continue;
- }
- for (int j = i + 1; j < a; j++){
- if (equal_trees(trees[i], trees[j]) == true){
- pomocne_pole[j] = -1;
- }
- }
- }
- int pom = 0;
- while (pom != a){
- if (pomocne_pole[pom] == 0){
- sum++;
- }
- pom++;
- }
- printf("%d\n", sum);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement