小弟我实现了这样一种通用树结构,大牛过来帮小弟我看看价值大不大
我实现了这样一种通用树结构,大牛过来帮我看看价值大不大
1.查找,添加,删除元素时间复杂度为高度(h)不是所有节点数(n)也不是(logn)。
2.如果可以开多个线程,我能从根结点往下,遇见分叉结点就开一个线程,到最后一层能访问所有元素。
这里的二叉树类似树的根,从根节点倒水,然后整个根吸收。

而向前序等都是只能一个一个访问
我才大三,这两天学树,自己的一个想法,已经用c++实现了这个想法的二叉树,只需稍作修改就能成为通用的。
我对其他树算法不了解,请问我写的这个如何?如果不错的话我应该去哪里发表?(最好是权威一点的~)
本人顶多算个入门,大牛们不喜勿喷啊
------解决方案--------------------
想法是好的,但是有点不切实际。
虽然你的算法时间复杂度减少了,但是你可以跟其他方法对比,你会发现你比他们慢多了,慢的而且不是一个数量级的。
你要知道创建一个线程是很花时间的,几十MS到几百MS,这么长的时间你想你的树已经遍历多少了,不是很大的话估计都遍历结束了。也许你可能会想到线程池,如果输比较大的话,我觉得也是可取的,比如在根节点用两个线程分别遍历左右子树,当然这要根据实际情况进行取舍了。程序是死的,人才是活的,遇到不同的场景需灵活变通。书本上学到的都是一些通用方法,实际程序设计中需要一些灵活变通。
------解决方案--------------------
首先,二叉树的高度h=logn,可见楼主不太懂二叉树
然后,线程这种操作系统相关和纯理论的算法没关系,可见楼主不太懂算法
最后,关于线程,假如是单核CPU,线程开得越多总效率越低,如果楼主以为这样多开线程就可以改变算法的效率,那我只能说楼主大概也不太懂线程
------解决方案--------------------
有想法是好事,有自信也不是坏事
但还是要打好基础知识,别让探索精神变成民科精神,那就是大坏事了
1.查找,添加,删除元素时间复杂度为高度(h)不是所有节点数(n)也不是(logn)。
2.如果可以开多个线程,我能从根结点往下,遇见分叉结点就开一个线程,到最后一层能访问所有元素。
这里的二叉树类似树的根,从根节点倒水,然后整个根吸收。
而向前序等都是只能一个一个访问
我才大三,这两天学树,自己的一个想法,已经用c++实现了这个想法的二叉树,只需稍作修改就能成为通用的。
我对其他树算法不了解,请问我写的这个如何?如果不错的话我应该去哪里发表?(最好是权威一点的~)
本人顶多算个入门,大牛们不喜勿喷啊
------解决方案--------------------
想法是好的,但是有点不切实际。
虽然你的算法时间复杂度减少了,但是你可以跟其他方法对比,你会发现你比他们慢多了,慢的而且不是一个数量级的。
你要知道创建一个线程是很花时间的,几十MS到几百MS,这么长的时间你想你的树已经遍历多少了,不是很大的话估计都遍历结束了。也许你可能会想到线程池,如果输比较大的话,我觉得也是可取的,比如在根节点用两个线程分别遍历左右子树,当然这要根据实际情况进行取舍了。程序是死的,人才是活的,遇到不同的场景需灵活变通。书本上学到的都是一些通用方法,实际程序设计中需要一些灵活变通。
------解决方案--------------------
首先,二叉树的高度h=logn,可见楼主不太懂二叉树
然后,线程这种操作系统相关和纯理论的算法没关系,可见楼主不太懂算法
最后,关于线程,假如是单核CPU,线程开得越多总效率越低,如果楼主以为这样多开线程就可以改变算法的效率,那我只能说楼主大概也不太懂线程
------解决方案--------------------
有想法是好事,有自信也不是坏事
但还是要打好基础知识,别让探索精神变成民科精神,那就是大坏事了