当前位置: 首页 > news >正文

青海省住房和城乡建设厅门户网站汉邦未来网站建设

青海省住房和城乡建设厅门户网站,汉邦未来网站建设,网站制作价格情况,extract wordpress大意 示例标签串#xff1a; 处理结果#xff1a; 题目1 根据标签串创建树 需求 需求#xff1a;给出一个字符串#xff0c;将这个字符串转换为一棵树。 字符串可以在代码里见到#xff0c;是以#开头#xff0c;按照\分割的字符串。 你需要将这个字符串#xff0…大意 示例标签串 处理结果 题目1 根据标签串创建树 需求 需求给出一个字符串将这个字符串转换为一棵树。 字符串可以在代码里见到是以#开头按照\分割的字符串。 你需要将这个字符串按照树存储为几个长标签串。 请自行编写存储完成后的展示代码。 package com.urfread.review.algorithm.tree; import org.junit.jupiter.api.Test;import java.util.List; /*** 1.定义标签结点* 2.定义标签树* 3.根据标签串创建一棵树(你需要保证父标签id的正确性)* 4.输出一棵树的内容*/ class TagNode {Tag tag;ListTagNode children; } class Tag {String label;int parentId;int tagId; } class TagTree{Tag root; }public class TreeBuild {Testpublic void buildTreeByStrTest(){// 示例标签串String tagString #计算机技术/编程语言/Java/注解/ #计算机技术/数据结构与算法分析/树/#难度/基础/ #重要程度/一般/;TagNode rootNode buildTreeByStr(tagString);// 自行编写输出展示的代码}public static TagNode buildTreeByStr(String str){TagNode rootNode new TagNode();// START// 请在此编写代码// ENDreturn rootNode;} }实现思路 以下给出代码不能匹配这个练习题这是我实际开发的时候编写的代码 只能当做是伪代码 处理根节点。根节点不需要考虑标签内容直接创建即可。 // 创建根节点 TreeNode rootNode new TreeNode(null); // 根节点无需标签 rootNode.setTag(new Tag(0,,0));//但还是给一个以防空指针异常为了保证标签id的正确性所以做了特殊处理 int id 1; // 标签节点的ID从1开始 lastTagIdMap.put(rootNode, id);//在方法外定义的HashMap。含义为下一个被添加的结点的id。在开始处理字符串之前我们需要考虑这样一个问题如何在树中添加一个结点 我们需要知道一些特征添加到哪个结点的孩子中、添加的标签是什么。 比如现在我们已经创建了根结点那我们肯定会把下一个结点添加在根结点的孩子中 那么结点的内容怎么取 我们的标签是以#号开头的所以去掉#就可以了。但是后边还连着一堆按\分割的子标签那现在怎么办 我们首先按\将字符串分割为字符串数组现在就可以放心的处理第一个结点了。如何处理第二个结点 分情况我们是该另开辟一条路径还是接着刚才的结点往后续。 区分依据就是看这个标签开头是不是#如果是那么就应该另开辟一条路径如果不是就直接续。 也就是说我们需要保存上一个结点的引用不然就不知道该把当前结点添加给谁当孩子了。特殊情况处理 标签的id记着手动增长。其实到后边标签的id可以表示它加入到这课树中的顺序在存到数据库时可以进行特殊操作。 分叉如果遇到两个标签串前半部分一样后来分叉怎么处理如果一样只移动结点指针不再创建。 答案 package com.urfread.review.algorithm.tree;import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; import lombok.NoArgsConstructor; import org.junit.jupiter.api.Test;import java.util.List; /*** 1.定义标签结点* 2.定义标签树* 3.根据标签串创建一棵树 (你需要保证父标签id的正确性)* 4.输出处理结果*/ Data NoArgsConstructor Getter class TagNode {Tag tag;ListTagNode children;public TagNode(Tag tag) {this.tag tag;}public void addChild(TagNode child) {if (children null) {children new java.util.LinkedList();}children.add(child);} } Data AllArgsConstructor class Tag {int tagId;String label;int parentId; } class TagTree{Tag root; }public class TreeBuild {Testpublic void buildTreeByStrTest(){// 示例标签串String tagString #计算机技术/编程语言/Java/注解/ #计算机技术/数据结构与算法分析/树/#难度/基础/ #重要程度/一般/;TagNode rootNode buildTreeByStr(tagString);// 自行编写输出展示的代码printTree(rootNode);}public static TagNode buildTreeByStr(String tagStr){TagNode rootNode new TagNode();// START// 请在此编写代码rootNode.setTag(new Tag(0,,0));int id1;String[]tagstagStr.split(/);TagNode currentNoderootNode;for(String tag:tags){if (tag.startsWith(#)){currentNoderootNode;tagtag.substring(1);}boolean isExistfalse;if(currentNode.getChildren()!null)// 判断是否已经插入for (TagNode child:currentNode.getChildren()){if (child.getTag().getLabel().equals(tag)){// 如果已经存在则只做移动指针的操作currentNodechild;isExisttrue;break;}}// 如果不存在才会继续添加if (!isExist){TagNode newTagNodenew TagNode(new Tag(id,tag,currentNode.getTag().getTagId()));currentNode.addChild(newTagNode);currentNodenewTagNode;}}// ENDreturn rootNode;}// 输出一棵树,请添加一些分级缩进public static void printTree(TagNode rootNode){// START// 请在此编写代码if (rootNode!nullrootNode.getChildren()!null)for (TagNode child:rootNode.getChildren()){printTree(child,1);}// END}public static void printTree(TagNode rootNode,int level){if (rootNode!null){for (int i0;ilevel;i){System.out.print( );}System.out.println(rootNode.getTag().getLabel());if (rootNode.getChildren()!null)for (TagNode child:rootNode.getChildren()){printTree(child,level1);}}} }
http://www.hkea.cn/news/14439572/

相关文章:

  • 竞价网站做不做链接wordpress制作分销网站
  • html5 手机 手机网站建站收费标准
  • 如何在自己网站开发互动视频photoshop网站模板
  • 如何做营销型单页网站网站制作案例
  • 网站建设的基本原则网络服务器下载
  • wordpress双站 中英文产品网络推广方式
  • 自己建网站写小说重庆建网站计划
  • 职教集团网站建设网站建设那个比较好
  • 设计门户网站广告设计公司排行
  • win7 iis网站无法显示该页面杭州企业网站建设哪家好
  • 网站建设pqiw抖音代运营怎么解绑
  • 呼市网站制作招聘网站建设公司豆瓣
  • 可拖拽式网站建设网站建设遇到哪些危险
  • 设计作品欣赏网站wordpress logo 字体
  • 家乡网站建设策划书模板百度怎么添加店铺地址
  • 网站首页适合vue做吗WordPress页面置顶菜单
  • 什么网站可以做推广网站建设分录怎么开
  • 亚马逊网站建设特点网站建设中 模板素材
  • 单位做网站注意什么门窗 东莞网站建设
  • 关键词优化网站建设网站的主要任务
  • 信息产业部互联网网站管理工作细则做网站虚拟主机价格
  • 专用汽车网站模板外贸建站模板价格
  • 顺德做网站公司哪家好做网站从哪方面入门
  • 欧洲购物网站排名网站建设市区
  • 国外创意设计网站做网站老板不发工资我拿尾款
  • 女装东莞网站建设seo排名优化有哪些
  • 台州网站搜索优化网站推广到海外怎么做
  • 网站名称怎么起好听专业的东莞网站排名
  • 新手怎样做网站做推广什么网站便宜
  • 网站建设入门培训山西省最新干部调整