提交时间:2023-08-23 16:22:33
运行 ID: 99726
#include <iostream> #include <stack> using namespace std; stack <int> s; bool flag[1024] = {0}; struct tree { int node; int left = -1,right = -1; } lst[1024]; void dfs(int num) { cout << lst[num].node << ' '; if(lst[num].left != -1) dfs(lst[num].left); if(lst[num].right != -1) dfs(lst[num].right); } int main() { int num; cin >> num; for(int i = 0;i < num;i++) { cin >> lst[i].node; } for(int i = 0;i < num;i++) { for(int k = i;k < num;k++) { if(lst[k].node < lst[i].node && flag[k] == 0 && lst[i].left == -1) { lst[i].left = k; flag[k] = 1; } if(lst[k].node > lst[i].node && flag[k] == 0 && lst[i].right == -1) { lst[i].right = k; flag[k] = 1; } } } dfs(0); }