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-二叉搜索树(二叉搜索树模板题)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Java刷题笔记—701. 二叉搜索树中的插入操作
Leetcode练习(Python):栈类:第173题:二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。
Leetcode练习(Python):栈类:第173题:二叉搜索树迭代器:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。