hdoj-3791-二叉搜索树(二叉搜索树模板题)

Posted 朤尧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdoj-3791-二叉搜索树(二叉搜索树模板题)相关的知识,希望对你有一定的参考价值。

#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;

typedef int ElemType;
template<typename T>
int getArrayLength(T &array) {
    return (sizeof(array) / sizeof(array[0]));
}

typedef struct node{
    ElemType data;
    struct node *lchild, *rchild;
}*BST;

bool insertBST(BST &T, ElemType element) {
    if (T == NULL) {
        T = new node;
        T->data = element;
        T->lchild = T->rchild = NULL;
        return true;
    }
    if (T->data == element) return false;
    if (element< T->data) insertBST(T->lchild, element);
    else insertBST(T->rchild, element);
}
//judge
int flag;
void judge(BST T1, BST T2) {
    if (T1 == NULL && T2 == NULL) {
        return ;
    } else if(T1->data != T2->data) {//数据比较坑 
        flag = 0;
        return ;
    } else if(((T1->lchild !=NULL && T2->lchild !=NULL) || (T1->lchild ==NULL && T2->lchild ==NULL)) && 
        ((T1->rchild !=NULL && T2->rchild !=NULL) || (T1->rchild ==NULL && T2->rchild ==NULL))) {//需要考虑全面 
        judge(T1->lchild, T2->lchild);
        judge(T1->rchild, T2->rchild);
    }else flag = 0;
}
int main() {
    int t, n ,k ,x;
    BST tree[25];
    
    while (scanf("%d", &t)!=EOF && t) {
        memset(tree, 0, sizeof(tree));
        for (int i=0; i<t+1; i++) {
            BST T = NULL;
            char s[11];
            scanf("%s", s);
            for (int j=0; j<=strlen(s)-1; j++) 
                insertBST(T, s[j]-0);
            tree[i] = T;
        }
        for (int i=1; i<t+1; i++) {
            flag = 1;
            judge(tree[0], tree[i]);
            if (flag) printf("YES\n");
            else printf("NO\n");
        }
    }
}

 

以上是关于hdoj-3791-二叉搜索树(二叉搜索树模板题)的主要内容,如果未能解决你的问题,请参考以下文章

❤️数据结构入门❤️(2 - 1)- 二叉搜索树

代码题(10)— 二叉搜索树

模板二叉搜索树(二叉排序树,二叉查找树,BST)

LeetCode Java刷题笔记—701. 二叉搜索树中的插入操作

Leetcode练习(Python):栈类:第173题:二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。

Leetcode练习(Python):栈类:第173题:二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。