二叉搜索树hdu3791
来源:互联网 发布:unity3d实现物体闪烁 编辑:程序博客网 时间:2024/05/20 23:59
题意:判断两序列是否为同一二叉搜索树序列
思路:创建了二叉搜索树之后,随便用一个遍历方法来判断两棵二叉树的每个结点的值是不是相等的就可以了。
代码:
#include <iostream>using namespace std;#include <string.h>#include <stdlib.h>#include <stdio.h>#include <malloc.h>typedef struct node //二叉树结点{ struct node *lchild; struct node *rchild; char key;}Node, *BinNode;int flag;void Insert(BinNode &root, char value) //插入结点{ BinNode temp = (BinNode)malloc(sizeof(Node)); temp->lchild = NULL; temp->rchild = NULL; temp->key = value; if(root == NULL) { root = temp; } if(root->key == value) { return ; } else if(root->key > value) { Insert(root->lchild, value); } else { Insert(root->rchild, value); }}void GetAns(BinNode root1, BinNode root2) //用先序遍历来判断两棵树的结构是不是一样的{ if(root1 != NULL && root2 != NULL) { if(root1->key == root2->key) //如果先序遍历的时候两棵树的值都一样,那flag加一,最后再判断flag的长度是不是等于主树的结点个数 { flag ++; } if(root1->lchild != NULL && root2->lchild != NULL) GetAns(root1->lchild, root2->lchild); if(root1->rchild != NULL && root2->rchild != NULL) GetAns(root1->rchild, root2->rchild); }}int main(){ int n; char k[11]; while(scanf("%d", &n)!=EOF) { if(n == 0) break; memset(k, 0, sizeof(k)); cin>>k; BinNode root = NULL; int len = strlen(k); for(int i = 0; i < len; i++) { Insert(root, k[i]); } while(n--) { flag = 0; BinNode p = NULL; memset(k, 0, sizeof(k)); cin>>k; len = strlen(k); for(int i = 0; i < len; i++) Insert(p, k[i]); GetAns(root, p); if(flag == len) //比较主树的节点个数和主树与要比较的树的结构相同的节点的个数 cout<<"YES"<<endl; else cout<<"NO"<<endl; } } return 0;}
0 0
- hdu3791二叉搜索树
- HDU3791:二叉搜索树
- hdu3791 二叉搜索树
- hdu3791 二叉搜索树
- HDU3791 二叉搜索树
- HDU3791-二叉搜索树
- 二叉搜索树hdu3791
- hdu3791--二叉搜索树
- 【二叉搜索数】HDU3791二叉搜索树
- Hdu3791 - 二叉搜索树 - 二叉树
- hdu3791(二叉搜索树构造)
- HDU3791 二叉搜索树(构建二叉搜索树模板)
- 首道二叉树 HDU3791:二叉搜索树
- hdu3791 二叉搜索树(BST的建立)
- 二叉排序树:HDU3791-二叉搜索树(用指针建立二叉排序树)
- 浙大计算机研究生复试上机考试(2010)——二叉搜索树(hdu3791)
- HDU3791
- HDU3791
- stm32 NVIC中断管理实现[直接操作寄存器]
- 第7章 云监控
- Android五种数据存储(数据持久化)方式
- VS2013多工程开发
- Golang1.7.3使用标准库的AES加密解密不实用扩展协议
- 二叉搜索树hdu3791
- 消息队列MassageComponent示例
- iBatis查询复杂集合
- 新建CR
- Visual studio shell 2010中跟踪当前选中的ToolWindow
- php获取ip地址以及ip对应的省市区
- PHP语言特性和各版本的差异
- Dagger2的简单使用
- 利用参数宏进行角度与弧度转换