Golang:递归数据结构

2024-01-11

我有一个简单的问题...我正在尝试用切片在 Golang 中重现这个递归数据结构。

type Trie map[byte]Trie

现在,我有一些使用下面的递归数据结构和切片的“粗略”源代码,一切正常,除了我的类型结构是一个结构而不是结构切片。理想情况下,我希望我的类型化递归数据结构是 Trie 的一部分,其中包含元素 Trie{byte, []Trie}。希望这是有道理的吗?现在我有一个 Trie struct{byte, []Trie} 类型。

type Trie struct {
elem byte
others []Trie
} 

也许这会有所帮助。当我现在创建切片 Trie 时,我使用这个函数。

func CreateTrie() []Trie {
    return make([]Trie, 0, 13)
}

我希望以这样的方式定义切片的 Trie,以便我可以创建这样的切片。

func CreateTrie() Trie {
    return make(Trie, 0, 13)
}

这对于切片来说是可能的还是我已经使用了我的第一个(唯一的)切片解决方案?


Is this https://play.golang.org/p/gZyKp2bNWY你在找什么?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang:递归数据结构 的相关文章

  • select 语句是否保证通道选择的顺序?

    继从这个答案 https stackoverflow com a 25795236 274460 如果一个 goroutine 在两个通道上进行选择 是否保证通道的选择顺序与其发送的顺序相同 我对发送者是单线程的情况特别感兴趣 例如 是否保
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute
  • 如何为所有 API 端点全局设置 http.ResponseWriter Content-Type 标头?

    我是 Go 新手 现在正在用它构建一个简单的 API package main import encoding json fmt github com gorilla mux github com gorilla handlers log
  • 如何读取大型平面文件

    我有一个平面文件 其中包含 339276 行文本 大小为 62 1 MB 我试图读入所有行 根据我所拥有的某些条件解析它们 然后将它们插入数据库 我最初尝试使用 bufio Scan 循环和 bufio Text 来获取该行 但缓冲区空间不
  • 与通道相比,sync.WaitGroup 的优势是什么?

    我正在开发一个并发 Go 库 我偶然发现了 goroutine 之间两种不同的同步模式 其结果相似 等待组 https play golang org p ZYPLlcp16TZ package main import fmt sync t
  • 如何在 Go 中填写 void* C 指针?

    我正在尝试与 Go 中的一些 C 代码交互 使用 cgo 这一直相对简单 直到我遇到这种 相当常见 的情况 需要将指针传递给本身包含指向某些数据的指针的结构 我似乎无法弄清楚如何从 Go 中做到这一点 而不诉诸于将结构的创建放入 C 代码本
  • 在复杂的文件夹结构中进行测试

    我正在 golang 中构建一个设计模式存储库 为了运行所有测试 我使用这个 bash 脚本 有用 bin bash go test creational abstract factory go go test creational bui
  • GoLang 中的 HTML 部分

    我刚刚开始使用 Go 我想用它创建一个网络应用程序 我现在尝试的是以handlebarsjs 式的方式使用模板 我想将页眉和页脚从主页中取出 以便可以将它们注入到每个网页上 我当前的设置应该是解析主页 页眉和页脚 HTML 文件并缓存它们
  • 关闭长度未知的通道

    当不了解频道时我无法关闭频道 length package main import fmt time func gen ch chan int var i int for time Sleep time Millisecond 10 ch
  • 我们如何在 Go 中使用通道来代替互斥锁?

    通道将通信 值的交换 与同步相结合 保证两个计算 goroutine 处于已知状态 如何使用 Google Go 中的通道来执行互斥量的功能 package main import sync var global int 0 var m s
  • 云存储 API 的错误导入“系统调用”

    我正在按照以下说明进行操作https cloud google com appengine docs go googlecloudstorageclient download开始将一些代码从现已弃用的文件 API 迁移到新的 Cloud S
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 子字符串和 Go 垃圾收集器

    在 Go 中获取字符串的子字符串时 不会分配新的内存 相反 子字符串的底层表示包含一个数据指针 该指针是原始字符串的数据指针的偏移量 这意味着 如果我有一个大字符串并希望跟踪一个小子字符串 则垃圾收集器将无法释放任何大字符串 直到我释放对较
  • Go 指针 - 通过指针将值附加到切片

    我有一个 struct ProductData 及其实例 p 它有一个切片属性 type ProductInfo struct TopAttributes map string interface 我想设置 TopAttributes 如下
  • 共享 GOPATH 的良好做法是什么?

    我刚刚开始学习 Go 并阅读现有代码以了解 其他人是如何做的 在这样做时 go 工作空间 的使用 特别是当它与项目的依赖项相关时 似乎无处不在 在处理各种 Go 项目时 使用单个或多个 Go 工作区 即 GOPATH 的定义 的常见最佳实践
  • 使用生成的 Golang DLL 返回字符串或 *C.Char

    我一直在努力追随z505 goDLL https github com z505 goDLL回购并遇到了一个大问题 该方法无法返回字符串 我无法读取结果的输出变量 这是我到目前为止使用的代码 Go 完整代码https play golang
  • 如何在GO中执行HEAD请求?

    我想使用 GO net http 获取页面的内容长度 我可以在终端中使用curl i X HEAD https golang org然后检查内容长度字段 use http Head https golang org pkg net http
  • 在 golang 中将 []uint32 转换为 []byte,反之亦然

    最有效的 性能 转换方式是什么 uint32向和从 byte在戈兰 例如 func main source uint32 1 2 3 dest make byte 4 len source source to dest check len
  • 在 Go 中解析多个 JSON 对象

    可以使用以下方法轻松解析如下对象encoding json包裹 something foo something else bar 我面临的问题是当服务器返回多个字典时 如下所示 something foo something else ba
  • Go 中的数据竞争:为什么会在 10-11 毫秒以下发生?

    这是我运行的代码 package main import fmt time const delay 9 time Millisecond func main n 0 go func time Sleep delay n fmt Printl

随机推荐

  • 将数据帧复制到具有默认值列的 postgres 表

    我有以下 postgreSql 表stock 结构如下 insert time有一个默认值now column pk type id yes int type yes enum c date date qty int insert time
  • jsdoc :从其他模块引用 typedef-ed 类型

    假设我在 js 模块中有一个 typedef 类型 somewhere foo js module typedef Foo type object property string bar some property 是否可以在另一个模块中引
  • 在双图中标记点

    我已经执行了 PCA 并绘制了双标图R pca1 princomp data X250 data X500 data shear scores TRUE cor TRUE rownames data 1 biplot pca1 xlab P
  • 检测抖动中颜色是浅还是深

    有什么方法可以检查颜色是深还是浅 即颤动中的黑色色调或白色并获得布尔值 true 或 false 您还可以使用该方法获取亮度并应用 W3C 指定的阈值 在 dart 代码中 这可能如下所示 Color getFontColorForBack
  • 动画约束变化,位置动画,但高度跳跃没有动画

    我有一个自定义的 UIView 在该 UIView 中 我有一个带有黄色背景的 UILabel 其中包含 8 称为labelWhite 我以编程方式为该 UILabel 创建 4 个约束 顶部 左侧 宽度和高度 当我点击 UIView 时
  • 在Python中存储正则表达式字符串的干净方法

    我想在配置文件中存储一系列预先测试的正则表达式 并在运行时读取和应用它们 然而 因为它们通常都挤满了转义字符 所以当我将它们加载到内存中并将它们填充到字典中时 它们已经被转义死了 我怎样才能保持我的正则表达式定义的完整性 以便它们re co
  • 有没有办法限制 Node (Express) 的速度和响应时间?

    我想看看我的网站对缓慢的连接有何反应 有没有办法可以限制快递以慢速或延迟响应 我知道我可以实施setTimeout调用路径 但是静态资源呢 正如我在评论中提到的 现代浏览器支持网络速度模拟 以及更多 在应用程序中进行任何程序性延迟伪造都不是
  • MySQL:如何在布尔/tinyint 列上创建部分索引?

    CREATE TABLE participations id int 10 unsigned NOT NULL AUTO INCREMENT participant id int 10 unsigned NOT NULL prize id
  • 折叠表达式:替换特定类型但转发所有其他类型 为什么我的重载不考虑重载解析?

    我试图替换折叠表达式中的特定类型 同时简单地转发所有其他类型 但失败了 模拟std forward 实际上复制了 GCC 的实现 只是添加了一些输出来看看发生了什么 namespace test template
  • Ghostscript pdfwrite 指定 jpeg 质量

    我正在尝试连接多个 pdf 文件 这些文件基本上是包含 jpg 图像的相册页面 对于我的输出 pdf 文件 我希望将图像分辨率调整为 300 dpi 并希望保持最佳质量 我使用的命令是 gswin64c exe dNOPAUSE dBATC
  • 文件所有者和 nsapplication、appdelegate

    在苹果文档中 它指出 nsapplication 是主笔尖的文件所有者 这只是由模板设置还是必须加载第一个笔尖 以这种方式加载 另外 我通读了有关文件所有者的其余帖子 但有些事情仍然让我感到困惑 如果 Iboutlet 是 nibs 文件所
  • 使用 Splinter 操作浏览器(窗口)大小

    我正在尝试使用 Firefox 驱动程序Splinter https github com cobrateam splinter测试一些响应式设计 当然 这需要我调整浏览器窗口的大小 我根本找不到有关浏览器调整大小的任何信息文档 https
  • 如何廉价地将 C 样式数组分配给 std::vector?

    目前我执行以下操作 float c array new float 1024 void Foo foo float c array size t c array size std vector
  • 使用 rtree 和普通索引的 SQLite 查询速度慢

    我在 SQLite 表中有地理空间数据 带有坐标的名称 并为该位置创建了一个 rtree 并在名称列上创建了一个普通索引 Rtree 根据此文档使用 http www sqlite org rtree html http www sqlit
  • 如何让 git 接受自签名证书?

    使用 Git 有没有办法告诉它接受自签名证书 我正在使用 https 服务器来托管 git 服务器 但目前证书是自签名的 当我第一次尝试在那里创建存储库时 git push origin master f 我收到错误 error Canno
  • R:在日期中添加“th”、“rd”和“nd”

    我有一些日期 我可以从中提取该月的日期 trimws format seq Date from as Date 2016 01 01 to as Date 2016 10 01 by day e 我想根据需要使用后缀 th rd 或 nd
  • 复制按钮保留换行符

    我有一些非常基本的 Javascript 可以在按下按钮时复制文本 我的问题是它不保留换行符 我真的希望能够将一些东西添加到上面的脚本中 以避免在网站上进行巨大的更改 我在其他帖子上看到过一些内容 例如 post innerHTML pos
  • 更新 redux 存储中的嵌套数据

    使用 redux 更新存储中的嵌套数据数组的最佳 正确方法是什么 我的商店是这样的 items 1 id 1 key value links id 10001 data some more stuff 我有一对异步操作来更新完整的items
  • 使用图表系列中的参数值在 SSRS 2008 中进行钻取报告?

    我正在为我的公司创建一个仪表板系统 它由 Excel 图表和仪表报告组成 这些报告是用报告服务 2008 我有一个饼图 其中包含前 5 个最佳产品以及分配给每个产品的受保方数量 我想通过单击图表的系列区域 产品描述 来增强这一点 并希望它打
  • Golang:递归数据结构

    我有一个简单的问题 我正在尝试用切片在 Golang 中重现这个递归数据结构 type Trie map byte Trie 现在 我有一些使用下面的递归数据结构和切片的 粗略 源代码 一切正常 除了我的类型结构是一个结构而不是结构切片 理