博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯——先进的多说好树遍历
阅读量:6952 次
发布时间:2019-06-27

本文共 1753 字,大约阅读时间需要 5 分钟。

多 - 树,一般来讲。而二叉树类似的。但是,它可能有叉树结构。分类似在电脑的文件夹。

static class MyTree {		private Map map = new HashMap();		public void add(char parent, char child) {			List
t = (List
) map.get(parent);// child list if (t == null) { t = new Vector
(); map.put(parent, t); // } t.add(child); } public List
getChild(char x) { return (List
) map.get(x); } } //深度优先 static void Dfs(MyTree tree,char x) { List
child=tree.getChild(x); Stack
stack=new Stack
(); stack.push(x); while(!stack.isEmpty()) { System.out.print(stack.peek()+" "); List
tmp = tree.getChild(stack.pop()); if(tmp!=null) for(int i=0;i
t=tree.getChild(x); List
lst=new Vector
(); lst.add(x); while(lst.size()>0) { System.out.print(lst.get(0)+" "); List
tmp=tree.getChild(lst.remove(0)); if(tmp!=null) { for(int j=0;j
showTree(MyTree tree, char x) { List
t = tree.getChild(x); // get child list List
r = new Vector
(); if (t == null) { r.add("" + x); return r; } for (int i = 0; i < t.size(); i++) { List
ri = showTree(tree, t.get(i)); for (int j = 0; j < ri.size(); j++) { String pre = "| "; if (j == 0) { if (i == 0) pre = x + "--"; else pre = "|--"; } else { if (i == ri.size() - 1) pre = " "; else pre = "| "; } r.add(pre + ri.get(j)); } } return r; } public static void main(String[] args) { MyTree a = new MyTree(); a.add('a', 'b'); a.add('b', 'e'); a.add('b', 'f'); a.add('a', 'c'); a.add('a', 'd'); a.add('d', 'g'); a.add('d', 'i'); a.add('g', 'h'); a.add('f', 'j'); a.add('f', 'k'); List
lst = showTree(a, 'a'); for (int i = 0; i < lst.size(); i++) { System.out.println(lst.get(i)); } System.out.println(); // Bfs(a, 'a'); Dfs(a, 'a'); }

版权声明:本文博主原创文章。博客,未经同意不得转载。

你可能感兴趣的文章
WebView使用技巧和介绍
查看>>
使矩形区域无效
查看>>
工具的链接
查看>>
js中的数据类型及判断方法
查看>>
Set和Map数据结构
查看>>
Katana
查看>>
HDU 1003 Max Sum * 最长递增子序列(求序列累加最大值)
查看>>
6.11 将分割数据转换为多值IN列表
查看>>
Mathtype部分数学符号不能显示,只能显示方框时的解决办法
查看>>
python学习笔记10--协程、IO、IO多路复用
查看>>
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中
查看>>
MATLAB 2012b license checkout failed
查看>>
妙趣横生的算法:亲密数
查看>>
springboot项目创建,及运行
查看>>
from gff3 get gene fasta sequence(2)
查看>>
zabbix系列(二)zabbix3.0.4添加对mysql数据库性能的监控
查看>>
【文文殿下】 [USACO08MAR]土地征用 题解
查看>>
HashMap、TreeMap、LinkedHashMap、hashtable的区别 小记
查看>>
股票基础常识
查看>>
c++ 编译时函数匹配和运行时类型识别
查看>>