04-树4 是否同一棵二叉搜索树
2017-03-24 19:32
453 查看
#include <stdio.h> #include <stdlib.h> #define ElementType int typedef struct TNode *Position; typedef Position Tree; struct TNode { ElementType Data; Tree Left; Tree Right; int flag; }; Tree makeTree(int N); Tree InsertTree(Tree T,int V); int JudgeSame(Tree T,int tmp); int check(Tree T,int tmp); void reSet(Tree T); void FreeTree(Tree T); void printfTree(Tree T) { if(T->Left) printfTree(T->Left); if(T->Right) printfTree(T->Right); printf("%d",T->Data); } int main() { int N,L,i; Tree T; //freopen("in.txt", "r", stdin); scanf("%d",&N); while(N) { scanf("%d",&L); T=makeTree(N); printfTree(T); for(i=0;i<L;i++) { if(JudgeSame(T,N)) { printf("Yes\n"); } else { printf("No\n"); } reSet(T); } FreeTree(T); scanf("%d",&N); } return 0; } Tree makeTree(int N) { int i=0,tmp; Tree T; for(i=0;i<N;i++) { scanf("%d",&tmp); printf("will be inserted nood %d",tmp); if(!T) { printf("init root %d\n",tmp); T=(Position)malloc(sizeof(struct TNode)); T->Data=tmp; T->Left=NULL; T->Right=NULL; } else { T=InsertTree(T,tmp); } } } Tree InsertTree(Tree T,int V) { if(!T) { printf("init chlid Tree %d",V); T=(Position)malloc(sizeof(struct TNode)); T->Data=V; T->Left=NULL; T->Right=NULL; } else { if(V>T->Data) { T->Right=InsertTree(T->Right,V); } else { T->Left=InsertTree(T->Left,V); } } return T; } int JudgeSame(Tree T,int N) { int i,V; scanf("%d",&V); if(V!=T->Data) { return 0; } else { T->flag=1; } for(i=1;i<N;i++) { scanf("%d",&V); if(!check(T,V)) return 0; } return 1; } int check(Tree T,int tmp) { if(T->flag) { if(tmp<T->Data) return JudgeSame(T->Left,tmp); else if(tmp>T->Data) return JudgeSame(T->Right,tmp); else return 0; } else { if(tmp==T->Data) { T->flag=1; return 1; } else return 0; } } void reSet(Tree T) { if(T->Left) { reSet(T->Left); } if(T->Right) { reSet(T->Right); } T->flag=0; } void FreeTree(Tree T) { if(T->Left) FreeTree(T->Left); if(T->Right) FreeTree(T->Right); free(T); }
真是头大 求网上大神指出一下 不知道在哪里有问题了
相关文章推荐
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树
- 04-树4 是否同一棵二叉搜索树(25 分)
- 04-树4 是否同一棵二叉搜索树(25 分)
- 04-树4 是否同一棵二叉搜索树
- 04-树4 是否同一棵二叉搜索树
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否是同一棵二叉搜索树
- PAT04-树4 是否同一棵二叉搜索树【JAVA实现】
- 04-树4 是否同一棵二叉搜索树
- MOOC浙大数据结构 — 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树
- 04-树4 是否同一棵二叉搜索树(25 分)
- 04-树4 是否同一棵二叉搜索树(25 分)---陈越、何钦铭-数据结构-2017秋
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树 (25分)
- 04-树4 是否同一棵二叉搜索树
- 04-树4 是否同一棵二叉搜索树(25 分)[建树比较、不建树比较、建一株树比较]
- 04-树4 是否同一棵二叉搜索树