PAT1043 Is It a Binary Search Tree 水题
2014-08-31 17:24
405 查看
#include<algorithm> #include<cstdio> #include<iostream> #include<vector> #include<queue> #include<map> #include<string> #include<cstring> #include<stack> #define N 100005 #define ll long long #define pb push_back #define eps 1e-9 using namespace std; int cnt,ok; int a ; struct node { int data,ls,rs; }tree ; int build(int l,int r,int s) { if(l>r)return -1; int i = l+1,j; if(!s) { while(a[i]<a[l]&&i<=r)i++; for(j = i;j<=r;j++) if(a[j]<a[l]) { ok = 0; return 0; } } else { while(a[i]>=a[l]&&i<=r)i++; for(j = i;j<=r;j++) if(a[j]>=a[l]) { ok = 0; return 0; } } int id = ++cnt; tree[id].data = a[l]; tree[id].ls = build(l+1,i-1,s); tree[id].rs = build(i,r,s); return id; } void dfs(int rt) { if(rt == -1)return; dfs(tree[rt].ls); dfs(tree[rt].rs); if(rt == 1)printf("%d\n",tree[rt].data); else printf("%d ",tree[rt].data); } int main() { int n,i,j; while(scanf("%d",&n)!=EOF) { cnt = 0; ok = 1; for(i = 1;i<=n;i++)scanf("%d",&a[i]); build(1,n,0); if(!ok) { ok = 1; build(1,n,1); } if(!ok)printf("NO\n"); else { printf("YES\n"); dfs(1); } } return 0; }
相关文章推荐
- 【PAT】1043. Is It a Binary Search Tree
- PAT1043:Is It a Binary Search Tree
- 浙大 PAT 1043. Is It a Binary Search Tree (25)
- pat 1043. Is It a Binary Search Tree (25)
- 1043. Is It a Binary Search Tree (25)—PAT
- pat 1043. Is It a Binary Search Tree (25)
- 1043. Is It a Binary Search Tree (25)【二叉树】——PAT (Advanced Level) Practise
- PAT 1043. Is It a Binary Search Tree (25)
- 【PAT】1043. Is It a Binary Search Tree (25)
- PAT (Advanced Level) 1043. Is It a Binary Search Tree (25)
- PAT 1043. Is It a Binary Search Tree (25)(判断是否是搜索树并构建和后序输出)(待修改)
- 1043. Is It a Binary Search Tree (25)-PAT甲级真题
- PAT 1043. Is It a Binary Search Tree
- PAT_A 1043. Is It a Binary Search Tree (25)
- PAT-A-1043. Is It a Binary Search Tree (25)
- PAT 1043. Is It a Binary Search Tree (25)
- PAT (Advanced) 1043. Is It a Binary Search Tree (25)
- PAT 1043. Is It a Binary Search Tree (25)
- PAT 1043. Is It a Binary Search Tree (25)
- PAT (Advanced) 1043. Is It a Binary Search Tree (25)