04-树4 是否同一棵二叉搜索树 (25分)
来源:互联网 发布:淘宝直通车关键词价格 编辑:程序博客网 时间:2024/06/04 19:00
#include<iostream> using namespace std; struct TreeNode{int data;TreeNode * lchild;TreeNode * rchild;int flag;//0表示未访问过,1访问过 };TreeNode * NewTreeNode(int tmp){TreeNode * T=new TreeNode;T->data=tmp; T->lchild=T->rchild=NULL;T->flag=0;return T; }TreeNode * Insert(TreeNode * T,int tmp){if(!T) T=NewTreeNode(tmp);else{ //这个else必须要 if(tmp>T->data) T->rchild=Insert(T->rchild,tmp);else T->lchild=Insert(T->lchild,tmp);}return T;}TreeNode * MakeTree(int N){int tmp; cin>>tmp;TreeNode * T=NewTreeNode(tmp);//创建根节点 for(int i=1;i<N;i++){ //创建其它节点 cin>>tmp;T=Insert(T,tmp);} return T;} bool Check(TreeNode * T,int tmp){if(T->flag){if(tmp>T->data) return Check(T->rchild,tmp); else if(tmp<T->data) return Check(T->lchild,tmp); else return false;}else{if(tmp==T->data){T->flag=1;return true;}else return false;} } bool Judge(TreeNode * T,int N){int flag=0;//0表示当前还一致,1表示当前已经不一致 int tmp;cin>>tmp;if(T->data!=tmp) flag=1;else T->flag=1;//访问过//cout<<flag<<" "; for(int i=1;i<N;i++){cin>>tmp;//cout<<Check(T,tmp)<<" ";if( (!flag) && (!Check(T,tmp)) ) flag=1; //!flag表示当前还一致, !Check(T,tmp)表示接下来产生了不一致 !要打(),因为!优先级高于&& } if(flag) return false;else return true;}void Reset(TreeNode * T){T->flag=0;if(T->lchild) Reset(T->lchild);if(T->rchild) Reset(T->rchild);} void FreeTree(TreeNode * T){if(T->lchild) FreeTree(T->lchild);if(T->rchild) FreeTree(T->rchild);delete(T);} int main(){ //freopen("input.txt","r",stdin);int N,L;cin>>N; while(N){ //if cin>>L; //这句要在建树之前,因为建树也要读取数据 TreeNode * T=MakeTree(N); for(int i=0;i<L;i++){if(Judge(T,N)) cout<<"Yes"<<endl;else cout<<"No"<<endl;Reset(T);//清除T中标记的flag,都初始化为0}FreeTree(T); cin>>N;//换一颗树 }return 0; }
阅读全文
1 0
- 5-4 是否同一棵二叉搜索树 (25分)
- 5-4 是否同一棵二叉搜索树 (25分)
- 5-4 是否同一棵二叉搜索树 (25分)
- 5-7 是否同一棵二叉搜索树 (25分)
- 是否同一棵二叉搜索树 (25分)
- 是否同一棵二叉搜索树(25 分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25 分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 企业人事管理系统
- 数据结构——图的遍历和存储
- Jquery用法
- C++中的RTTI(runtime type information) 机制
- Matlab自适应滤波器设计Demo——LMS,RLS
- 04-树4 是否同一棵二叉搜索树 (25分)
- windows 下 Redis 主从 读写分离
- Entity Framework- Databinding with WinForms
- 应付考试用的KMP算法中next数组及nextval数组的计算(笑)
- 北大 AI 公开课第8讲:华为李航——NLP 有 5 个基本问题,深度学习有4个做得很好 (PPT)
- 5-28 猴子选大王 (20分)
- AOP学习之路
- Lombok 消除冗长的 java 代码
- 【GDOI2017 Day 1 T2】取石子游戏