正文

续pku(2567)(1)2005-09-08 04:57:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ddtme/4509.html

分享到:

        //求出孩子节点
        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;
}

阅读(4399) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册