static void Tree(int[] hs)
{
//int[] hs = { 2, 3, 4, 1, 2, 2, 3, 4, 3, 3, 4, 5, 5, 2, 4, 4 };
int k = 0;
int h;
int s = 5;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hs.Length; i++)
{
h = hs[i];
if (h < s) s = h;
if (i > 0) k = hs[i - 1];
if (h <= k)
{
sb.Remove(sb.Length - 1, 1);
sb.Append("|");
for (int a = 0; a < h - s; a++)
sb.Append("-");
}
sb.Append(h.ToString() + ", ");
}
string[] strs = sb.ToString().Split('|');
string[] sts;
int h1 = 0;
string ht = "";
sb = new StringBuilder();
for (int b = 0; b < strs.Length; b++)
{
sts = strs[b].Split(',');
for (int c = 0; c < sts.Length - 1; c++)
{
if (c == 0)
{
if (sts[c].StartsWith("-"))
{
string ht2 = "";
int idx = Math.Min(sts[c].Length - 1, ht.Split('.').Length - 1);
int d = int.Parse(ht.Split('.')[idx]) + 1;
for (int e = 0; e < idx; e++)
{
ht2 += ht.Split('.')[e] + ".";
}
ht = ht2 + d.ToString();
}
else
{
h1++;
ht = h1.ToString();
}
}
else ht += ".1";
for (int l = 0; l < ht.Split('.').Length; l++)
sb.Append("-");
sb.Append(ht);
sb.Append("/n");
}
}
Console.Write(sb.ToString());
}
分享到:
相关推荐
php 数组转换成树形结构输出代码php 数组转换成树形结构输出代码php 数组转换成树形结构输出代码
数据结构为数组中包含对象–树形结构,用Vue组件的写法实现以下的效果: 树形列表,缩进显示层级,第5级数据加底色,数据样式显色,点击展开折叠数据。本文为用Vue实现方式,另有一篇为用knockout.js的实现方法。 ...
线段树 树状数组 数据结构 线段树 树状数组 数据结构 acm 线段树 树状数组 数据结构 线段树 树状数组 数据结构 acm 线段树 树状数组 数据结构 线段树 树状数组 数据结构 acm 线段树 树状数组 数据结构 线段树 树状...
js数组转换成tree结构数组算法
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 将有序数组转换为二叉搜索树的结果肯定是不唯一的,因为存在...
php数组无限制生成树源代码,无限制递归子类源代码
常见的数据结构(栈、队列、数组、链表和红黑树) 数组和链表.pdf
单向链表就是通过每个节点的指针指向下一个节点从而链接起来的结构。单向循环链表和单向链表的不同是,最后一个节点的next不是指向null,而是指向head节点,形成一个“环”。双向链表是包含两个指针的,pre指向前一...
树结构使用实例-实现数组和树结构的转换
js数组转为树形结构 树形结构数据扁平化
对递归深刻了解,不用看其他资料了
数据结构及算法导论 详细介绍线性表,栈和队列,串,多维数组及广义表,树,图,排序,查找等数据结构及算法描述,PDF格式,很清晰……
在选择完根节点之后,其余的数字分别位于平衡二叉搜索树的左子树和右子树中,左子树和右子树分别也是平衡二叉搜索树,因此可以通过递归的方式创建平衡二叉搜索树。 Java 实现代码 ```java class Solution { ...
c++实现二叉树的数组存储,代码很简单,参考即可
ArrayTree 是一种将二维数组转换为树结构(也称为嵌套或分层)数组的工具。 下面是一个例子: $ dataList = array ( array ( 'id' => 1 , 'parent_id' => 0 , 'name' => 'games' ), array ( 'id' => 2 , ...
二叉排序树,用顺序表(一维数组)作存储结构 1 以回车为输入结束标志,输入数列L,生成一棵二叉排序树T 2 对二叉树T作中序遍历,输出结果 3 计算二叉排序树T查找成功的平均查找长度,输出结果 4 输入元素X,...
树状数组(Binary Indexed Tree, BIT)是一种特殊的数据结构,它结合了数组的便捷性和树的高效查询能力。在处理一系列累积和相关的操作时,树状数组展现出了卓越的性能。本文将详细介绍树状数组的原理、实现方法以及...
用二维数组实现的最小生成树(比用图实现简单),数据结构课设做的ACM习题中的使总代价最小的通讯网。编译过的c++文件!
本文详细介绍了树状数组的原理,并用树状数组解校门外的树这个问题.