当前位置: 代码迷 >> 综合 >> 1063. 树的双亲存储法
  详细解决方案

1063. 树的双亲存储法

热度:60   发布时间:2023-12-06 11:24:50.0

题目:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
样例:
input:
10
-1 0 0 0 1 1 1 3 3 8
output:
4 5 6 1 2 7 9 8 3 0

反思:
拖延症晚期患者了…好久都没A题了(崩溃大哭)可能是一开始对树这一块有点畏惧心理,一直拖着…
思路:
其实主要是学习了一下vector的用法,看了一下书…
代码:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn=111111;
int n;
vector<int>v[maxn];
void dfs(int root)
{
    if(v[root].size()==0) return;else{
    for(int i=0;i<v[root].size();i++){
    dfs(v[root][i]);cout<<v[root][i]<<" ";}}
}
int main()
{
    cin>>n;int root;for(int i=0;i<n;i++){
    int temp;cin>>temp;if(temp==-1) root=i;else v[temp].push_back(i);}dfs(0);cout<<root<<endl;return 0;
}