Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99742 | 梁晨熙 | 前序遍历 | C++ | 解答错误 | 30 | 0 MS | 260 KB | 763 | 2023-08-23 16:52:55 |
#include<bits/stdc++.h> using namespace std; int n; int a[1000001]; struct node{ int val; int l,r; }tree[1000001]; void dfs(int id,int step){ if(tree[id].val==0){ return; } cout<<tree[id].val<<" "; dfs(tree[id].l,step+1); dfs(tree[id].r,step+1); } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; if(i==1){ tree[1].val=a[i]; } else{ tree[i].val=a[i]; for(int j=1;j<=i;j++){ if(tree[j].val!=0&&tree[j].l==0&&a[i]<tree[j].val){ tree[j].l=i; break; } if(tree[j].val!=0&&tree[j].r==0&&a[i]>=tree[j].val){ tree[j].r=i; break; } } } } // for(int i=1;i<=n;i++){ // cout<<tree[i].val<<" "<<tree[i].l<<" "<<tree[i].r<<endl; // } dfs(1,1); return 0; }