栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将平面数据结构显示为分层数据结构(Java)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将平面数据结构显示为分层数据结构(Java)?

以下是一些示例代码,这些代码使用递归在层次结构中列出了它们。Item类具有子级列表。诀窍是将任何新的孩子添加到正确的父母中。这是我为此创建的方法:

public Item getItemWithParent(int parentID){    Item result = null;    if(this.categoryID == parentID){        result = this;    } else {        for(Item nextChild : children){ result = nextChild.getItemWithParent(parentID); if(result != null){     break; }        }    }    return result;}

可能有一种更有效的方法,但这可行。

然后,当您要将新项目添加到层次结构时,请执行以下操作:

public void addItem(int categoryID, String name, int parentID) {    Item parentItem = findParent(parentID);    parentItem.addChild(new Item(categoryID, name, parentID));}private Item findParent(int parentID) {    return rootNode.getItemWithParent(parentID);}

对于实际的显示,我只是传递了一个“选项卡级别”,其中说出了选项卡输入的距离,然后为每个孩子增加它,如下所示:

public String toStringHierarchy(int tabLevel){    StringBuilder builder = new StringBuilder();    for(int i = 0; i < tabLevel; i++){        builder.append("t");    }    builder.append("-" + name);    builder.append("n");    for(Item nextChild : children){        builder.append(nextChild.toStringHierarchy(tabLevel + 1));    }    return builder.toString();}

这给了我这个:

-electronics    -Television        -21inch -Test        -23inch        -LCD display    -player        -mp3player        -vcd player -hd quality        -dvd player


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号