- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经创建了这种数据结构
abstract type Node end
struct Tree{A <: Node, B <: Node} <: Node
a::A
b::B
end
这种类型的结构让我可以方便地根据子节点的类型来寻址树的节点。
我可以举个例子
struct Character <: Node
c::Char
end
并制定一个专门的方法来识别具有两个 Character
child 的树
function test(node::Tree{Character, Character}) end
但我也可以定义一个类似的函数
function test(node::Tree{Tree{Character, Character}, Tree}) end
它寻址一个 Tree
,最左边的分支包含两个 Character
和一个任意的 Tree
在右边。
我的实现以类似的方式分派(dispatch)许多方法。
这种类型的结构有效,但对于相当大的树,我注意到一些速度变慢,尤其是在尝试使用 typeof
确定类型时。这种模式被认为是有效的吗?如果不是,有没有办法提高效率?
最佳答案
根据特定场景,可能会有很多关于树定义的提议。但是,您肯定希望避免导致性能不佳的递归嵌套类型结构。
这是我的建议。这个二叉树可以保存任何T
struct Tree{T}
val::T
a::Union{Tree{T}, Nothing}
b::Union{Tree{T}, Nothing}
end
Tree(val::A) where A=Tree{A}(val,nothing,nothing)
leaf1 = Tree(4)
leaf2 = Tree(5)
subb1 = Tree(555,leaf1,leaf2)
tree = Tree(1000,subb1, Tree(888))
现在让我们看看那棵树:
juila> dump(tree)
Tree{Int64}
val: Int64 1000
a: Tree{Int64}
val: Int64 555
a: Tree{Int64}
val: Int64 4
a: Nothing nothing
b: Nothing nothing
b: Tree{Int64}
val: Int64 5
a: Nothing nothing
b: Nothing nothing
b: Tree{Int64}
val: Int64 888
a: Nothing nothing
b: Nothing nothing
关于julia - Julia 中的多参数递归类型和类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60992904/
我正在用 Python 编写一个 ETL 脚本,用于获取 CSV 文件中的数据、验证和清理数据以及根据某些规则对每一行进行分类或分类,最后将其加载到 postgresql 数据库中。 数据看起来像这样
我在做一个项目,想实现一个类似于 wordpress posts 表的 posts 表来存储页面内容。 所以我基本上复制了 wp_posts 表,它是 longtext 但是我注意到在整理下它有 ut
在使用 MySQL 一段时间后,我第一次尝试使用 PostgreSQL 数据库。我的环境是与 cPanel 和 phpPgAdmin 共享主机。令我困惑的一件事是数据库整理。我的主机的 cPanel
在一些指南的帮助下,我成功地使用 gcc 编译了 sqlite3 的 ICU 扩展并获得了 libSqliteIcu.so,没有显示任何错误。然后我将这个 lib 复制到/usr/lib 文件夹。之后
我搜索了一个 JQuery 插件,但没有成功,该插件能够根据其内容过滤 HTML 列表(li、div 或其他列表)。我发现了很多,但似乎没有一个支持 MySQL 中所谓的排序规则(当然在其他地方也是如
我正在尝试将我的一个数据库表从 utf8_general_ci 切换到 utf8mb4。 ALTER TABLE d4b80le1jha CONVERT TO CHARACTER SET utf8mb
我是一名优秀的程序员,十分优秀!