c++
以下のコードをVScodeのターミナルからg++ rootedtrees.cpp -o rootedtreesでコンパイルして、./rootedtreesで実行し、 13 0 3 1 4 10 1 2 2 3 2 0 3 0 4 3 5 6 7 5 0 6 0 7 2 8 9 8 0 9 0 10 2 11 12 11 0 12 0 のようにターミナルに打ったのですが、最後の行を打つと、出力を待たずに、ターミナルを抜けてしまいます。他のエディターでは、正しい出力が出たので、コードに間違いはないと思うのですが、どうしたらターミナルに出力が出るようになるでしょうか?
該当のソースコード
c++
1#include<iostream> 2using namespace std; 3#define MAX 100005 4#define NIL -1 5 6struct Node{int p,l,r;}; /*p=parent,l=mostleft-child,r=right-sibling*/ 7 8Node T[MAX]; 9int n, D[MAX]; 10 11void print(int u){ 12 int i,c; 13 cout<<"node"<<u<<":"; 14 cout<<"parent"<<T[u].p<<","; 15 cout<<"depth"<<D[u]<<","; 16 17 if(T[u].p==NIL)cout<<"root,"; 18 else if (T[u].l==NIL)cout<<"leaf,"; 19 else cout<<"internal node,"; 20 21 cout<<"["; 22 23 for(i=0,c=T[u].l;c!=NIL;i++,c=T[c].r){ 24 if(i)cout<<","; 25 cout<<c; 26 } 27 cout<<"]"<<endl; 28} 29 30int rec(int u,int p){ 31 D[u]=p; 32 if(T[u].r!=NIL)rec(T[u].r,p); 33 if(T[u].l!=NIL)rec(T[u].l,p+1); 34} 35 36int main(){ 37 int i,j,d,v,c,l,r; 38 cin>>n; /*number of node*/ 39 for(i-0;i<n;i++)T[i].p=T[i].l=T[i].r=NIL; 40 41 for(i=0;i<n;i++){ 42 cin>>v>>d; /*v=node number,d=number of node's child*/ 43 for(j=0;j<d;j++){ 44 cin>>c; 45 if(j==0)T[v].l=c; 46 else T[l].r=c; 47 l=c; 48 T[c].p=v; 49 } 50 } 51 for(i=0;i<n;i++){ 52 if(T[i].p==NIL)r=i; 53 } 54 55 rec(r,0); 56 for(i=0;i<n;i++)print(i); 57 58 return 0; 59} 60
回答1件
あなたの回答
tips
プレビュー