如何遍历一个二叉树!再把这个二叉树写生个XML!!!救救我吧!朋友们!

解决方案 »

  1.   

    你看看这个,兄弟用递归构造。我只给出代码的关键地方,你自己再想想。
    //构造tree
        private DefaultMutableTreeNode buildOrgGroupNode(OrgnizationGroup group) {
            if (group != null) {
                DefaultMutableTreeNode parentNode = new DefaultMutableTreeNode(
                                                                               group);
                Collection<OrgnizationGroup> childGroups = group.getChildGroups();
                DefaultMutableTreeNode childNode;
                if (childGroups != null) {
                    for(OrgnizationGroup childGroup : childGroups) {
                        childNode = buildOrgGroupNode(childGroup);
                        if (childNode != null) {
                            parentNode.add(childNode);
                        }
                    }
                }            return parentNode;
            }        return null;
        }
    //----------------------------OrgnizationGroup 类-------给你代码的片断,也可以加一些别的信息
    public class OrgnizationGroup extends Organization {
        //上级组织
        private OrgnizationGroup        parentGroup;    //下级组织集合
        private List<OrgnizationMember> members;    //下级成员集合
        private List<OrgnizationGroup>  childGroups;
        /**
         * @return Returns the parentGroup.
         */
        public OrgnizationGroup getParentGroup() {
            return parentGroup;
        }    /**
         * @param parentGroup The parentGroup to set.
         */
        public void setParentGroup(OrgnizationGroup parentGroup) {
            this.parentGroup = parentGroup;
        }    /**
         * @return Returns the members.
         */
        public List<OrgnizationMember> getMembers() {
            return members;
        }    /**
         * @param members The members to set.
         */
        public void setMembers(List<OrgnizationMember> members) {
            this.members = members;
        }
        /**
         * @return Returns the childGroups.
         */
        public List<OrgnizationGroup> getChildGroups() {
            return childGroups;
        }    /**
         * @param childGroups The childGroups to set.
         */
        public void setChildGroups(List<OrgnizationGroup> childGroups) {
            this.childGroups = childGroups;
        }
    }//---------------------Organization 基类,用于存放一些最基础的信息,省的每个类都写
    //了。
    public class Organization implements Serializable {
        protected int    id;    protected String name;
    //自己写一下get和set方法吧
    }
      

  2.   

    对了,我没有写到xml里,你自己写吧~
      

  3.   

    使用复合模式来写树,用iterator来遍历。生成XML可以用jdom.或者,用xmlrpc也可以,就是需要自己写一个transport.