//求出孩子节点 for(j=1;j<=len;j++) { for(i=1; i<=len; i++) { if(nd[i].parent!=0 && nd[i].parent == j) { nd[j].child[i] = i; } } } //求出删除点的父亲节点 k=0; for(i=1; i<=len; i++) { if(nd[i].du == 1) { if(nd[i].parent != 0) { p[k++] = nd[i].parent; nd[nd[i].parent].child[i] = 0; nd[nd[i].parent].du--; } else { temp = 0; while(1) { if(nd[i].child[temp] != 0) { p[k++] = nd[i].child[temp]; nd[nd[i].child[temp]].parent = 0; nd[nd[i].child[temp]].du--; break; } temp++; } } nd[i].du--; i = 0; } } //输出 cout<<p[0]; for(i=1;i<len-1;i++) { cout<<" "<<p[i]; } cout<<endl; } } int main() { doRun(); return 0; }

评论